diff --git a/300e51b05a0b4b20aae48962394b29fdd9ce5498-8528517ba86c581334ec.js b/300e51b05a0b4b20aae48962394b29fdd9ce5498-8528517ba86c581334ec.js deleted file mode 100644 index 5664a94..0000000 --- a/300e51b05a0b4b20aae48962394b29fdd9ce5498-8528517ba86c581334ec.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkivannikov_pro_website=self.webpackChunkivannikov_pro_website||[]).push([[285],{5349:function(e,a,t){t.d(a,{$:function(){return c},U:function(){return i}});var n=t(6540);function i(e){let{className:a}=e,t="gradient-round gradient-round-1";return a&&(t+=" "+a),n.createElement("div",{className:t})}function c(e){let{className:a}=e,t="gradient-round gradient-round-2";return a&&(t+=" "+a),n.createElement("div",{className:t})}},79:function(e,a,t){t.d(a,{S:function(){return o},v:function(){return c}});var n=t(6540),i=(t(2389),t(6348),t(1563),t(6711),t(2532));const c=[{id:"uls-token",date:"2023-12-15T12:00:00.000Z",title:{en:"UNITS LIMITED SUPPLY (ULS) TOKEN",ru:"UNITS LIMITED SUPPLY (ULS) TOKEN"},desc:{en:"Cross-chain token on the Ethereum and Arbitrum blockchains with staking and annual halving. For halving, the Golden Ratio formula is applied. The project was created from a turnkey idea in 2 months. Created a unique design, smart contracts and website using React.js. WalletConnect was used to connect to the wallet.",ru:"Кроссчейн токен на блокчейнах Ethereum и Arbitrum со стейкингом и ежегодным халвингом. Для халвинга применена формула Золотого сечения. Проект был создан с идеи «под ключ» за 2 месяца. Создан уникальный дизайн, смарт-контракты и веб-сайт на React.js. Для подключения к кошельку использовался WalletConnect."},img:(e,a)=>n.createElement(i.S,{alt:e.title[a.language],title:e.title[a.language],src:"../assets/images/portfolio/uls-token.png",placeholder:"blurred",__imageData:t(4393)}),link:"/portfolio/uls-token/",tags:["all","blockchain","ethereum","arbitrum-one","token","defi"]},{id:"world-millionaire-challenge",date:"2023-10-15T12:00:00.000Z",title:{en:"World Millionaire Challenge",ru:"World Millionaire Challenge"},desc:{en:"Big daily lottery project. The project was created from a turnkey idea in 4 months. Created a unique design, smart contracts and website using React.js. WalletConnect was used to connect to the wallet. Implemented a personal user account, purchasing subscriptions, and a massive backend for working with the database and blockchain.",ru:"Большой проект ежедневной лотереи. Проект был создан с идеи «под ключ» за 4 месяца. Создан уникальный дизайн, смарт-контракты и веб-сайт на React.js. Для подключения к кошельку использовался WalletConnect. Реализован личный кабинет пользователей, покупка подписок, массивный бэкенд для работы с базой данных и блокчейном."},img:(e,a)=>n.createElement(i.S,{alt:e.title[a.language],title:e.title[a.language],src:"../assets/images/portfolio/world-millionaire-challenge.png",placeholder:"blurred",__imageData:t(2117)}),link:"/portfolio/world-millionaire-challenge/",tags:["all","blockchain","bsc","token","gamefi","nft"]},{id:"poolex-ai",date:"2022-07-15T12:00:00.000Z",title:{en:"Poolex.ai",ru:"Poolex.ai"},desc:{en:"A Uniswap V2 fork was created for the customer - Automated market makers (AMM). I created a fork of smart contracts and a web interface. The Polygon (Matic) network has been added. Placement on the blockchain and on a domain name. Posting code on GitHub. Project completion time is 2 weeks.",ru:"Для заказчика был создан форк Uniswap V2 - автоматический маркет мейкер (AMM). Мною был создан форк смарт контрактов и веб интерфейса. Была добавлена сеть Polygon (Matic). Размещение в блокчейне и на доменном имени. Размещение кода на GitHub. Время выполнения проекта 2 недели."},img:(e,a)=>n.createElement(i.S,{alt:e.title[a.language],title:e.title[a.language],src:"../assets/images/portfolio/poolex-ai.png",placeholder:"blurred",__imageData:t(4569)}),link:"/portfolio/poolex-ai/",tags:["all","blockchain","polygon","defi"]},{id:"roborovski-nft",date:"2022-02-18T12:00:00.000Z",title:{en:"Roborovski NFT Collection by SYA Concept",ru:"Roborovski NFT Collection by SYA Concept"},desc:{en:"Cool NFT collection from a famous studio with great art. I have completed work on developing smart contracts, creating and loading metadata, on-chain metadata, a react.js website with mint and a personal account, a backend for the raffle whitelist and protection against attacks on mint.",ru:"Крутая NFT коллекция от известной студии с великолепным артом. Мной были выполнены работы по разработке смарт-контрактов, созданию и загрузке метаданных, он-чейн метаднные, сайт на react.js с минтом и личным кабинетом, бэкенд для рафла вайтлиста и защиты от атаки на минт."},img:(e,a)=>n.createElement(i.S,{alt:e.title[a.language],title:e.title[a.language],src:"../assets/images/portfolio/roborovski-nft.jpeg",placeholder:"blurred",__imageData:t(1663)}),link:"/portfolio/roborovski-nft/",tags:["all","blockchain","ethereum","nft"]},{id:"grabcoinclub-nft",date:"2022-08-15T12:00:00.000Z",title:{en:"GrabCoinClub NFTs",ru:"GrabCoinClub NFTs"},desc:{en:"Several NFT collections for GrabCoinClub. I have completed work on developing smart contracts, creating and loading metadata, connecting the front end to the wallet and blockchain, the back end for the whitelist and protection against attacks on mint.",ru:"Несколько NFT коллекций для GrabCoinClub. Мной были выполнены работы по разработке смарт-контрактов, созданию и загрузке метаданных, подключение фронтенда к кошельку и блокчейну, бэкенд для вайтлиста и защиты от атаки на минт."},img:(e,a)=>n.createElement(i.S,{alt:e.title[a.language],title:e.title[a.language],src:"../assets/images/portfolio/grabcoinclub-nft.png",placeholder:"blurred",__imageData:t(3011)}),link:"/portfolio/grabcoinclub-nft/",tags:["all","blockchain","polygon","nft","gamefi"]},{id:"fibonacci-assistant-telegram-bot",date:"2024-03-18T12:00:00.000Z",title:{en:"Fibonacci Assistant Telegram Bot",ru:"Fibonacci Assistant Telegram Bot"},desc:{en:'Tech support Telegram Bot for the "Fibonacci Protocol" channel. Checking referral subscriptions, inviting to a closed group, banning users. TODO I have completed work on developing smart contracts, creating and loading metadata, connecting the front end to the wallet and blockchain, the back end for the whitelist and protection against attacks on mint.',ru:"Телеграм бот техподдержки канала «Протокол Фибоначчи». Проверка реферальных подписок, приглашение в закрытую группу, бан пользователей. TODO Мной были выполнены работы по разработке смарт-контрактов, созданию и загрузке метаданных, подключение фронтенда к кошельку и блокчейну, бэкенд для вайтлиста и защиты от атаки на минт."},img:(e,a)=>n.createElement(i.S,{alt:e.title[a.language],title:e.title[a.language],src:"../assets/images/portfolio/fibonacci-assistant-telegram-bot.png",placeholder:"blurred",__imageData:t(1108)}),link:"/portfolio/fibonacci-assistant-telegram-bot/",tags:["all","telegram"]}],o=[{id:"all",name:"All"},{id:"telegram",name:"Telegram"},{id:"blockchain",name:"Blockchain"},{id:"nft",name:"NFT"},{id:"defi",name:"DeFi"},{id:"gamefi",name:"GameFi"},{id:"ethereum",name:"Ethereum"},{id:"bsc",name:"BSC"},{id:"polygon",name:"Polygon"},{id:"arbitrum-one",name:"Arbitrum One"}]},1550:function(e,a,t){t.d(a,{A:function(){return l}});var n=t(6540),i=t(2389),c=t(7134),o=t(6348),A=t(6004);function l(e){let{preTitle:a,title:t,description:l,descriptionComponent:s,imageComponent:r}=e;const{t:d}=(0,i.Bd)("translation"),{open:b}=(0,c.hS)("GetInTouchModal");return n.createElement("section",{id:"section-start",className:"section section-start"},n.createElement("div",{className:"container"},n.createElement("div",{className:"row"},n.createElement("div",{className:"col-12 col-md-7 col-lg-6 col-xl-6 relative"},n.createElement("div",{className:"pre-title"},a&&n.createElement("span",null,a)),n.createElement("h1",{className:""},t),n.createElement("p",{className:"desc"},l),s&&s,n.createElement("div",{className:"start-btns"},n.createElement(o.A,{variant:"gradient",size:"static",className:"btn",onClick:b},d("Get in Touch")))),n.createElement("div",{className:"col-12 col-md-5 col-lg-6 col-xl-6"},n.createElement("div",{className:"start__image"},r||n.createElement("img",{alt:d("IVANNIKOV.PRO"),title:d("IVANNIKOV.PRO"),src:A.A}))))))}},6004:function(e,a,t){a.A=t.p+"static/main-ea93608a8a6b40bc2e18348041b646cc.webp"},1108:function(e){e.exports=JSON.parse('{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAAAsTAAALEwEAmpwYAAACMElEQVR42o2Sy24SYRiGexNaoDCHn5lykBIOUqBAYaagVCiltU002lhbCYi1LrSmNcHGNmqsph5WxkW1iYkm1YXxDrwCN8aFF/P6DgwtCxcunvnnO+Sd9/vmH1IUBRaqqiDo90LXVXiFCv+ogK71TiHYw7quCYwSv08gQELst+K+hsWQJeQakWCkAvi4ZWB9IY6nzQkcPSriGc9PHRPPb2XxYbOAN+s5fGb8pJHu9u2upnH3UgL1QgjDLglCtQUdFCzngthdSWHRHMN+O4Pvj0vYa2bwbaeEV2tZfHlo4vXtLI46BvZaGTRqUeyspHH/cgJXzoVxyunpCVo2ZVnpjnmPxeVKBFtL42jNxvBgKYnGTBR3FuNYrUa6blr1WLdnezmFtfk4pjNBKPLgyHxIksxdqPjxchovOOafwzoONvL4/X4WG/zIfjuLd4x/vp3B4aaBNoV+HdTwdXsKnWtJe1y1J9h3qFGwnDsDlUu+TndzHP3mxTiy434U0gFcyIdwg+4WzodR486aczHMl8ZwlW41r9rVOBaUiI+JKY+MIt/zTgkxt4wk91Kh+5KkwGRcdMko87RqEbqq8Cxw/z5b48Qh0YjJLxncZVnzIk2nBl1XGZukIAQqzFfZE2GcYb1u9TD22hrHgn1RF3GS03TlsqBrh523cNh4iJsM23l58B4OXkphMxH1YTLhR0AXUOWTfB/Vph8r/xK07qObO0xR7GxYR46Ck/whI8xZNUX5P/4CKNFmfZCIsSMAAAAASUVORK5CYII="},"backgroundColor":"transparent","images":{"fallback":{"src":"/static/85a6d2911ac1c4941c2d69ed55356ec3/35c90/fibonacci-assistant-telegram-bot.png","srcSet":"/static/85a6d2911ac1c4941c2d69ed55356ec3/8fb24/fibonacci-assistant-telegram-bot.png 576w,\\n/static/85a6d2911ac1c4941c2d69ed55356ec3/35c90/fibonacci-assistant-telegram-bot.png 640w","sizes":"(min-width: 640px) 640px, 100vw"},"sources":[{"srcSet":"/static/85a6d2911ac1c4941c2d69ed55356ec3/2a67b/fibonacci-assistant-telegram-bot.webp 576w,\\n/static/85a6d2911ac1c4941c2d69ed55356ec3/a58c7/fibonacci-assistant-telegram-bot.webp 640w","type":"image/webp","sizes":"(min-width: 640px) 640px, 100vw"}]},"width":640,"height":360}')},4569:function(e){e.exports=JSON.parse('{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAIAAAA7N+mxAAAACXBIWXMAAAsTAAALEwEAmpwYAAABQ0lEQVR42o3QS27DIBCA4dz/At31Cj1Cl1GrbKskNdjO0wY/wMYGwwxxsdO3IrXSt0L6NcMsTqucLhMZgSQgriKoY1evR333rF+emmosqGMUij2yU8fPuomdJJ3I1aLe9OVaNeQrriOoIii3WK1kuRU8AUZmMeSpZTvHwkvi8r1dKIrBVxxBs4eOQce9qi6KX1rmW+4b7stD6DFPIEsn5x0uFIGWwPe4r10/WD+O6P0nQFAC8jA8CfOvMdyIjfCC8DbJtLF6cB9s3/g/4nqKQT0s5f2jbnqjrdGDMdYMQyf/EVvpL9Z6Y1EoyGovlG/7sde9xBtx83NtmUK7n84mjxiIqxMWu/c/Z78mt+HgFOVMEKwJVhRLigWZcIqMIo+RpZN8N5niqYxctTXFWvMZm+Ubnc3OW30KXvUxiPThiphz6t4AmRYsEZAJE2gAAAAASUVORK5CYII="},"backgroundColor":"transparent","images":{"fallback":{"src":"/static/1e6b99ebed5fde7ec226482495663b76/3d4e1/poolex-ai.png","srcSet":"/static/1e6b99ebed5fde7ec226482495663b76/3dcd8/poolex-ai.png 576w,\\n/static/1e6b99ebed5fde7ec226482495663b76/1bb6d/poolex-ai.png 768w,\\n/static/1e6b99ebed5fde7ec226482495663b76/4654f/poolex-ai.png 992w,\\n/static/1e6b99ebed5fde7ec226482495663b76/52aa2/poolex-ai.png 1200w,\\n/static/1e6b99ebed5fde7ec226482495663b76/3d4e1/poolex-ai.png 3048w","sizes":"(min-width: 3048px) 3048px, 100vw"},"sources":[{"srcSet":"/static/1e6b99ebed5fde7ec226482495663b76/858d8/poolex-ai.webp 576w,\\n/static/1e6b99ebed5fde7ec226482495663b76/2b4d8/poolex-ai.webp 768w,\\n/static/1e6b99ebed5fde7ec226482495663b76/8cb7c/poolex-ai.webp 992w,\\n/static/1e6b99ebed5fde7ec226482495663b76/4d3b1/poolex-ai.webp 1200w,\\n/static/1e6b99ebed5fde7ec226482495663b76/32b59/poolex-ai.webp 3048w","type":"image/webp","sizes":"(min-width: 3048px) 3048px, 100vw"}]},"width":3048,"height":1464}')},1663:function(e){e.exports=JSON.parse('{"layout":"constrained","placeholder":{"fallback":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAHABQDASIAAhEBAxEB/8QAFwABAAMAAAAAAAAAAAAAAAAAAAEDBP/EABQBAQAAAAAAAAAAAAAAAAAAAAL/2gAMAwEAAhADEAAAAasAXAQ//8QAGRAAAgMBAAAAAAAAAAAAAAAAAQIAAxIR/9oACAEBAAEFAtisFl11J//EABYRAQEBAAAAAAAAAAAAAAAAAAACEf/aAAgBAwEBPwGqa//EABYRAQEBAAAAAAAAAAAAAAAAAAABEf/aAAgBAgEBPwGRj//EABkQAAIDAQAAAAAAAAAAAAAAAAABAhEhMv/aAAgBAQAGPwJ29NjZwf/EABoQAQACAwEAAAAAAAAAAAAAAAEAESExUfD/2gAIAQEAAT8hQKFqxGJ3Oz0Z/9oADAMBAAIAAwAAABAMH//EABgRAAMBAQAAAAAAAAAAAAAAAAABEVGh/9oACAEDAQE/EHN0vOH/xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQIBAT8Qgy//xAAdEAEAAgAHAAAAAAAAAAAAAAABABEhMUFhcaHR/9oACAEBAAE/EFgMCto5pxiS0SbWModiOn2ez//Z"},"backgroundColor":"transparent","images":{"fallback":{"src":"/static/ba2e3029ff1dcb1f9ad4e41525648ead/ebf5a/roborovski-nft.jpg","srcSet":"/static/ba2e3029ff1dcb1f9ad4e41525648ead/e3979/roborovski-nft.jpg 576w,\\n/static/ba2e3029ff1dcb1f9ad4e41525648ead/cabe4/roborovski-nft.jpg 768w,\\n/static/ba2e3029ff1dcb1f9ad4e41525648ead/32a37/roborovski-nft.jpg 992w,\\n/static/ba2e3029ff1dcb1f9ad4e41525648ead/026c2/roborovski-nft.jpg 1200w,\\n/static/ba2e3029ff1dcb1f9ad4e41525648ead/ebf5a/roborovski-nft.jpg 1500w","sizes":"(min-width: 1500px) 1500px, 100vw"},"sources":[{"srcSet":"/static/ba2e3029ff1dcb1f9ad4e41525648ead/fa78f/roborovski-nft.webp 576w,\\n/static/ba2e3029ff1dcb1f9ad4e41525648ead/93b0f/roborovski-nft.webp 768w,\\n/static/ba2e3029ff1dcb1f9ad4e41525648ead/d2257/roborovski-nft.webp 992w,\\n/static/ba2e3029ff1dcb1f9ad4e41525648ead/b7921/roborovski-nft.webp 1200w,\\n/static/ba2e3029ff1dcb1f9ad4e41525648ead/f44fb/roborovski-nft.webp 1500w","type":"image/webp","sizes":"(min-width: 1500px) 1500px, 100vw"}]},"width":1500,"height":500}')},4393:function(e){e.exports=JSON.parse('{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAIAAADtbgqsAAAACXBIWXMAAAsTAAALEwEAmpwYAAACbUlEQVR42i1Rz2vUQBTOTbtNd/NrZjKZmUySSbLJbrbd7W43W0qRVgShSlE8tFDqChZX2oNoPQnePGilRfAHXnooCPbQikopKHjRg3+Wb4swM29+fd/73vc0G2PVbmNMqtVaZVKfqlYndR0ijIo+petTDqVBoxnWs2a/TLPcerRz+dNhZWdkXprQEMLMl5ZpucJfH42Wbt1eWV+/sbFxfW1tbTS6ublZb3dkozm/sz34+L58/aoYbpKlK3bRrFVrGiGu9KXjIExpd35+utvrlIOZfn96rt9bWGiXg6ielVv3536cucdHxfnX8uiwvbgoGDdMU8PE5VzY9hgu4ljWMxFGnHHP9ahLqceSJJ3d3yu/n9z5drL181x8OS7vDT3GTMvSiOt6jFs1w4pU5eDlxIc3xvYDikAQhenLQKl47vmz8Ox09++f4e9f/PRzZ3UV3g3T0izLgbIty4ZIlUJBgIQPVwgkudTjnDKWDgbR9sP60yfB7uN8eJcphV1qGCaAbcd2TNOC33meCxDqUiH8OE6yLA9kABfFzEyrMwulZt1uVhRFu80Yr43BUC7CgHcw4XHi+5IJP1IxEGWtlkhS6GIYRiIIJKwy8AM4RWDGReaxVWjMgFDguhwoHOwLH3wKwohyAeLTegZ70CIDiFGcJP/ByEHATOLYVqr67kDfezH5dp/0el6aukVBqAfOQa4wUp7HMCGArmc57I2aoXGPCRWTKLIZQ1eX7Zsr6NoySRPcbOBWC3MO/7K8kecNX0ooNVKq05mFLowzgxigRY4DysF+hDE2THAaSYnBLcYhM4ikFxKgeWABGfeBmpb9D3FqdsLwSssEAAAAAElFTkSuQmCC"},"backgroundColor":"transparent","images":{"fallback":{"src":"/static/d317e03cae40c8b8bd4ada459ffda929/87955/uls-token.png","srcSet":"/static/d317e03cae40c8b8bd4ada459ffda929/e8ce6/uls-token.png 576w,\\n/static/d317e03cae40c8b8bd4ada459ffda929/086c2/uls-token.png 768w,\\n/static/d317e03cae40c8b8bd4ada459ffda929/b3c76/uls-token.png 992w,\\n/static/d317e03cae40c8b8bd4ada459ffda929/8bf62/uls-token.png 1200w,\\n/static/d317e03cae40c8b8bd4ada459ffda929/87955/uls-token.png 3021w","sizes":"(min-width: 3021px) 3021px, 100vw"},"sources":[{"srcSet":"/static/d317e03cae40c8b8bd4ada459ffda929/c510a/uls-token.webp 576w,\\n/static/d317e03cae40c8b8bd4ada459ffda929/52359/uls-token.webp 768w,\\n/static/d317e03cae40c8b8bd4ada459ffda929/3fccf/uls-token.webp 992w,\\n/static/d317e03cae40c8b8bd4ada459ffda929/53cb2/uls-token.webp 1200w,\\n/static/d317e03cae40c8b8bd4ada459ffda929/8af60/uls-token.webp 3021w","type":"image/webp","sizes":"(min-width: 3021px) 3021px, 100vw"}]},"width":3021,"height":1740}')},3011:function(e){e.exports=JSON.parse('{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACcElEQVR42jWR20/TABTGOxljw5VdYKy062Vbt7GtW7u1a9e1K7D7pezCbsCYilEiMK66qLxoSHjQ6AvBxMTog89qYnzySX3nj7KAJl++p/M73/lyAN5X7Sj3vBaGQUQGlai51LxTRkEeNkUhYwya5B1GFgGTMxOsD8r4nEv4jNzBnn+IvFOna4Bzgs1xaxu1oSoP5Gjz0cbTgtjvqcO1+t5mb5QV+v3GYV4ctErb7fKOJj+UmdHHYaPgNHCAfYwJwFmJ7yeYdpxUhXDLP5eNEEU50hVCzSCSi5FV2JyMukuEPR0hSpg1ZdXRswZWE+AYj0OTYuXZ6+L9kREITehwuy6sbVwpveUTBxaAQswyZlW0GdgsIeYUZkl7phedRt7xH+YDvjrpkc5L3a/S97r3DJ4s0sFBAFlxgaKq3ClK61m+l0l0M4leRlhd4FZdoHQNG1ingR0DInfRwp/255PCZZv97bHv2W4JNh2FW6QFKkejEoPJrDsddckMsUTOKrA5dQVrp9vG2XlQ+IU+fC++aLWG66kDldoizBW7PoaCEu1eZjy1ONmIECrra7BkPYgU4NviFazFgnqu7Exsh+mz/HD35OLx6NW343P/lGodZ7EpiXGrtLuiKYKX497lKF6eR/Iu8F8yBwIUahLb+M7+/umnH5cXH3+e7r4cNTuQiYVMSc7fiJPLLFnj/HXOVwtjJQ1Gp647T+tjQrBOuWv9UOeofXT45ktr61RRGrvVTRqvRAlVS4t5r91T1Zx2V4OuPHLTWftKjh+IoWaS3lCTT6rF47zyYJHrZbi1FNUVQz3SsRSAcrhNuRFhVzBb+gb+C9/mjoi9pCI1AAAAAElFTkSuQmCC"},"backgroundColor":"transparent","images":{"fallback":{"src":"/static/82365ce86fe87f29e868ea28eb45b510/ee4b4/grabcoinclub-nft.png","srcSet":"/static/82365ce86fe87f29e868ea28eb45b510/e73b4/grabcoinclub-nft.png 576w,\\n/static/82365ce86fe87f29e868ea28eb45b510/b33b5/grabcoinclub-nft.png 768w,\\n/static/82365ce86fe87f29e868ea28eb45b510/3e101/grabcoinclub-nft.png 992w,\\n/static/82365ce86fe87f29e868ea28eb45b510/e4813/grabcoinclub-nft.png 1200w,\\n/static/82365ce86fe87f29e868ea28eb45b510/ee4b4/grabcoinclub-nft.png 3008w","sizes":"(min-width: 3008px) 3008px, 100vw"},"sources":[{"srcSet":"/static/82365ce86fe87f29e868ea28eb45b510/4dfce/grabcoinclub-nft.webp 576w,\\n/static/82365ce86fe87f29e868ea28eb45b510/f5d56/grabcoinclub-nft.webp 768w,\\n/static/82365ce86fe87f29e868ea28eb45b510/21051/grabcoinclub-nft.webp 992w,\\n/static/82365ce86fe87f29e868ea28eb45b510/d7d32/grabcoinclub-nft.webp 1200w,\\n/static/82365ce86fe87f29e868ea28eb45b510/3fbe6/grabcoinclub-nft.webp 3008w","type":"image/webp","sizes":"(min-width: 3008px) 3008px, 100vw"}]},"width":3008,"height":1720}')},2117:function(e){e.exports=JSON.parse('{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAIAAAA7N+mxAAAACXBIWXMAAAsTAAALEwEAmpwYAAABxUlEQVR42nWRa2vTUBjHczuX5pz0JDFNzK1naZp27UZF4sZ8IaIytcwXKu3mtNBCESyWFtqBTtpiBfGDCL7wU5q0oGXgH87DA39+z+0IClKJxkQhl7wRAOBv3CaKosjZwyo0LJYcUp+73aval1+CKMmZkZGiuK0g3MgxhkTFCEFEKDYttVw3H71hR6ekluY2pTSOY13Xbdv2PC+LjDHHcVzXzSJCKGuNMMbMJC4nYayfvLjdnUBm5HCj0Vgul4PBYDabrVar+Xw+Go2m0+l6vf58fe37HgQSpsWCHWJ+QOJWsdqKP3y3HrRzmHPe7/eHw2Gv1+t0Ou12e7FYjMdjwzC2h0AYapatV5pm+qR6eUUrh3sX48pglsOEkMoe52EQBn6SJNnY2QpRFEEIN7CECpi5gb6f3jo5i16NCG+6T9+2Jt9yWAGQ6pbKTIjVG9faSgIImC6tpfbx8/D4MfGi8un5vcnX3CvEd6ufftaXv4v3X+awJO+AeSFRgYrh4HKT7h/R6h1o2o13E959v/EhhpYPS4GsFv91k3Z+TgEy1UEpVIME2T4N4/rHH9pBKvxPu7OLkiRBLBMGmKVorPTwtfPsUqHaHxA2P9Dr3OEaAAAAAElFTkSuQmCC"},"backgroundColor":"transparent","images":{"fallback":{"src":"/static/b1d568c729843866fc0431b8c36f6205/6b52d/world-millionaire-challenge.png","srcSet":"/static/b1d568c729843866fc0431b8c36f6205/f1a27/world-millionaire-challenge.png 576w,\\n/static/b1d568c729843866fc0431b8c36f6205/dbb14/world-millionaire-challenge.png 768w,\\n/static/b1d568c729843866fc0431b8c36f6205/42271/world-millionaire-challenge.png 992w,\\n/static/b1d568c729843866fc0431b8c36f6205/4cca8/world-millionaire-challenge.png 1200w,\\n/static/b1d568c729843866fc0431b8c36f6205/6b52d/world-millionaire-challenge.png 3038w","sizes":"(min-width: 3038px) 3038px, 100vw"},"sources":[{"srcSet":"/static/b1d568c729843866fc0431b8c36f6205/549df/world-millionaire-challenge.webp 576w,\\n/static/b1d568c729843866fc0431b8c36f6205/0757f/world-millionaire-challenge.webp 768w,\\n/static/b1d568c729843866fc0431b8c36f6205/305aa/world-millionaire-challenge.webp 992w,\\n/static/b1d568c729843866fc0431b8c36f6205/3a993/world-millionaire-challenge.webp 1200w,\\n/static/b1d568c729843866fc0431b8c36f6205/d2f3a/world-millionaire-challenge.webp 3038w","type":"image/webp","sizes":"(min-width: 3038px) 3038px, 100vw"}]},"width":3038,"height":1468}')}}]); -//# sourceMappingURL=300e51b05a0b4b20aae48962394b29fdd9ce5498-8528517ba86c581334ec.js.map \ No newline at end of file diff --git a/300e51b05a0b4b20aae48962394b29fdd9ce5498-8528517ba86c581334ec.js.map b/300e51b05a0b4b20aae48962394b29fdd9ce5498-8528517ba86c581334ec.js.map deleted file mode 100644 index 297470b..0000000 --- a/300e51b05a0b4b20aae48962394b29fdd9ce5498-8528517ba86c581334ec.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"300e51b05a0b4b20aae48962394b29fdd9ce5498-8528517ba86c581334ec.js","mappings":"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","sources":["webpack://ivannikov.pro-website/./src/components/elements/GradientRound.jsx","webpack://ivannikov.pro-website/./src/data/portfolio.jsx","webpack://ivannikov.pro-website/./src/screens/ScreenStart.jsx","webpack://ivannikov.pro-website/./src/assets/images/main.webp"],"sourcesContent":["import './GradientRound.scss';\n\nimport React from 'react';\n\n\n\nexport function GradientRound1({ className, }) {\n let clsName = `gradient-round gradient-round-1`;\n if (className) clsName += ` ${className}`;\n return (
);\n};\n\n\nexport function GradientRound2({ className, }) {\n let clsName = `gradient-round gradient-round-2`;\n if (className) clsName += ` ${className}`;\n return (
);\n};","import React from 'react';\nimport { useTranslation, Trans } from 'react-i18next';\n\nimport CommonButton from '../components/CommonButton';\nimport InnerLink from '../components/InnerLink';\nimport { Link, LinkExternal, } from '../components/Link';\n\n// https://www.gatsbyjs.com/docs/how-to/images-and-media/using-gatsby-plugin-image/\nimport { StaticImage, } from 'gatsby-plugin-image';\n\n//import UklTokenImage from '../assets/images/icons/briefcase.svg';\n/*import BlogImage1X2 from '../assets/images/blog/1@2x.png';\nimport BlogImage2 from '../assets/images/blog/2.png';\nimport BlogImage2X2 from '../assets/images/blog/2@2x.png';\nimport BlogImage3 from '../assets/images/blog/3.png';\nimport BlogImage3X2 from '../assets/images/blog/3@2x.png';\nimport BlogImage4 from '../assets/images/blog/4.png';\nimport BlogImage4X2 from '../assets/images/blog/4@2x.png';\nimport BlogImage5 from '../assets/images/blog/5.png';\nimport BlogImage5X2 from '../assets/images/blog/5@2x.png';*/\n\n\nexport const portfolioList = [\n {\n id: 'uls-token',\n date: '2023-12-15T12:00:00.000Z',\n title: {\n en: 'UNITS LIMITED SUPPLY (ULS) TOKEN',\n ru: 'UNITS LIMITED SUPPLY (ULS) TOKEN',\n },\n desc: {\n en: 'Cross-chain token on the Ethereum and Arbitrum blockchains with staking and annual halving. For halving, the Golden Ratio formula is applied. The project was created from a turnkey idea in 2 months. Created a unique design, smart contracts and website using React.js. WalletConnect was used to connect to the wallet.',\n ru: 'Кроссчейн токен на блокчейнах Ethereum и Arbitrum со стейкингом и ежегодным халвингом. Для халвинга применена формула Золотого сечения. Проект был создан с идеи «под ключ» за 2 месяца. Создан уникальный дизайн, смарт-контракты и веб-сайт на React.js. Для подключения к кошельку использовался WalletConnect.',\n },\n img: (item, i18n) => ,\n //img2x: '../assets/images/portfolio/uls-token.png',\n //icon: UklTokenImage,\n link: '/portfolio/uls-token/',\n tags: ['all', 'blockchain', 'ethereum', 'arbitrum-one', 'token', 'defi',],\n },\n\n {\n id: 'world-millionaire-challenge',\n date: '2023-10-15T12:00:00.000Z',\n title: {\n en: 'World Millionaire Challenge',\n ru: 'World Millionaire Challenge',\n },\n desc: {\n en: 'Big daily lottery project. The project was created from a turnkey idea in 4 months. Created a unique design, smart contracts and website using React.js. WalletConnect was used to connect to the wallet. Implemented a personal user account, purchasing subscriptions, and a massive backend for working with the database and blockchain.',\n ru: 'Большой проект ежедневной лотереи. Проект был создан с идеи «под ключ» за 4 месяца. Создан уникальный дизайн, смарт-контракты и веб-сайт на React.js. Для подключения к кошельку использовался WalletConnect. Реализован личный кабинет пользователей, покупка подписок, массивный бэкенд для работы с базой данных и блокчейном.',\n },\n img: (item, i18n) => ,\n //img2x: '../assets/images/portfolio/world-millionaire-challenge.png',\n link: '/portfolio/world-millionaire-challenge/',\n tags: ['all', 'blockchain', 'bsc', 'token', 'gamefi', 'nft',],\n },\n\n\n {\n id: 'poolex-ai',\n date: '2022-07-15T12:00:00.000Z',\n title: {\n en: 'Poolex.ai',\n ru: 'Poolex.ai',\n },\n desc: {\n en: 'A Uniswap V2 fork was created for the customer - Automated market makers (AMM). I created a fork of smart contracts and a web interface. The Polygon (Matic) network has been added. Placement on the blockchain and on a domain name. Posting code on GitHub. Project completion time is 2 weeks.',\n ru: 'Для заказчика был создан форк Uniswap V2 - автоматический маркет мейкер (AMM). Мною был создан форк смарт контрактов и веб интерфейса. Была добавлена сеть Polygon (Matic). Размещение в блокчейне и на доменном имени. Размещение кода на GitHub. Время выполнения проекта 2 недели.',\n },\n img: (item, i18n) => ,\n //img2x: '../assets/images/portfolio/poolex-ai.png',\n link: '/portfolio/poolex-ai/',\n // https://github.com/grabcoinclub/dex\n tags: ['all', 'blockchain', 'polygon', 'defi',],\n },\n\n\n\n {\n id: 'roborovski-nft',\n date: '2022-02-18T12:00:00.000Z',\n title: {\n en: 'Roborovski NFT Collection by SYA Concept',\n ru: 'Roborovski NFT Collection by SYA Concept',\n },\n desc: {\n en: 'Cool NFT collection from a famous studio with great art. I have completed work on developing smart contracts, creating and loading metadata, on-chain metadata, a react.js website with mint and a personal account, a backend for the raffle whitelist and protection against attacks on mint.',\n ru: 'Крутая NFT коллекция от известной студии с великолепным артом. Мной были выполнены работы по разработке смарт-контрактов, созданию и загрузке метаданных, он-чейн метаднные, сайт на react.js с минтом и личным кабинетом, бэкенд для рафла вайтлиста и защиты от атаки на минт.',\n },\n img: (item, i18n) => ,\n //img2x: '../assets/images/portfolio/roborovski-nft.jpeg',\n link: '/portfolio/roborovski-nft/',\n tags: ['all', 'blockchain', 'ethereum', 'nft',],\n },\n\n\n {\n id: 'grabcoinclub-nft',\n date: '2022-08-15T12:00:00.000Z',\n title: {\n en: 'GrabCoinClub NFTs',\n ru: 'GrabCoinClub NFTs',\n },\n desc: {\n en: 'Several NFT collections for GrabCoinClub. I have completed work on developing smart contracts, creating and loading metadata, connecting the front end to the wallet and blockchain, the back end for the whitelist and protection against attacks on mint.',\n ru: 'Несколько NFT коллекций для GrabCoinClub. Мной были выполнены работы по разработке смарт-контрактов, созданию и загрузке метаданных, подключение фронтенда к кошельку и блокчейну, бэкенд для вайтлиста и защиты от атаки на минт.',\n },\n img: (item, i18n) => ,\n //img2x: '../assets/images/portfolio/grabcoinclub-nft.png',\n link: '/portfolio/grabcoinclub-nft/',\n tags: ['all', 'blockchain', 'polygon', 'nft', 'gamefi'],\n },\n\n\n\n {\n id: 'fibonacci-assistant-telegram-bot',\n date: '2024-03-18T12:00:00.000Z',\n title: {\n en: 'Fibonacci Assistant Telegram Bot',\n ru: 'Fibonacci Assistant Telegram Bot',\n },\n desc: {\n en: 'Tech support Telegram Bot for the \\\"Fibonacci Protocol\\\" channel. Checking referral subscriptions, inviting to a closed group, banning users. TODO I have completed work on developing smart contracts, creating and loading metadata, connecting the front end to the wallet and blockchain, the back end for the whitelist and protection against attacks on mint.',\n ru: 'Телеграм бот техподдержки канала «Протокол Фибоначчи». Проверка реферальных подписок, приглашение в закрытую группу, бан пользователей. TODO Мной были выполнены работы по разработке смарт-контрактов, созданию и загрузке метаданных, подключение фронтенда к кошельку и блокчейну, бэкенд для вайтлиста и защиты от атаки на минт.',\n },\n img: (item, i18n) => ,\n //img2x: '../assets/images/portfolio/fibonacci-assistant-telegram-bot.png',\n link: '/portfolio/fibonacci-assistant-telegram-bot/',\n tags: ['all', 'telegram'],\n },\n];\n\n\nexport const portfolioTags = [\n { id: 'all', name: 'All', },\n //{ id: 'trending', name: 'Trending', },\n //{ id: 'top', name: 'Top', },\n { id: 'telegram', name: 'Telegram', },\n { id: 'blockchain', name: 'Blockchain', },\n { id: 'nft', name: 'NFT', },\n { id: 'defi', name: 'DeFi', },\n { id: 'gamefi', name: 'GameFi', },\n //{ id: 'bitcoin', name: 'Bitcoin', },\n { id: 'ethereum', name: 'Ethereum', },\n { id: 'bsc', name: 'BSC', },\n { id: 'polygon', name: 'Polygon', },\n { id: 'arbitrum-one', name: 'Arbitrum One', },\n\n //{ id: 'altcoins', name: 'Altcoins', },\n /*{ id: 'press-releases', name: 'Press releases', },\n { id: 'popular-on-tiktok', name: 'Popular on TikTok', },\n { id: 'top-nft-collection', name: 'TOP NFT Collection', },\n { id: '', name: 'YouTube Allstars', },\n { id: '', name: 'Trending NFT’s', },\n { id: '', name: 'Trending Crypto', },\n { id: '', name: 'Trending Tweets', },\n { id: '', name: 'Technical Guru’s', },\n { id: '', name: 'Live Feed', },\n { id: '', name: 'Whale Alerts', },\n { id: '', name: 'Top Gainers,' },\n { id: '', name: 'Wall of Shame', },*/\n];\n","import './ScreenStart.scss';\n\nimport React from 'react';\nimport { useTranslation, } from 'react-i18next';\n\nimport { useModal, } from 'react-simple-modal-provider';\n\nimport CommonButton from '../components/CommonButton';\n\n//import ImageMain from '../assets/images/main.svg';\nimport ImageMain from '../assets/images/main.webp';\n\n\n\nexport default function ScreenStart({\n preTitle, title, description,\n descriptionComponent,\n imageComponent,\n}) {\n const { t, } = useTranslation('translation');\n const { open: openGetInTouchModal, } = useModal('GetInTouchModal');\n\n return (\n
\n
\n
\n
\n
{preTitle && {preTitle}}
\n

{title}

\n\n

{description}

\n {descriptionComponent && descriptionComponent}\n\n
\n {t('Get in Touch')}\n
\n
\n
\n
\n {imageComponent\n ? imageComponent\n : }\n
\n
\n
\n
\n
\n );\n}\n","export default __webpack_public_path__ + \"static/main-ea93608a8a6b40bc2e18348041b646cc.webp\";"],"names":["GradientRound1","_ref","className","clsName","React","GradientRound2","_ref2","portfolioList","id","date","title","en","ru","desc","img","item","i18n","StaticImage","alt","language","src","placeholder","__imageData","require","link","tags","portfolioTags","name","ScreenStart","preTitle","description","descriptionComponent","imageComponent","t","useTranslation","open","openGetInTouchModal","useModal","CommonButton","variant","size","onClick","ImageMain"],"sourceRoot":""} \ No newline at end of file diff --git a/300e51b05a0b4b20aae48962394b29fdd9ce5498-fb243d0ea76e1eeb5985.js b/300e51b05a0b4b20aae48962394b29fdd9ce5498-fb243d0ea76e1eeb5985.js new file mode 100644 index 0000000..f123cae --- /dev/null +++ b/300e51b05a0b4b20aae48962394b29fdd9ce5498-fb243d0ea76e1eeb5985.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkivannikov_pro_website=self.webpackChunkivannikov_pro_website||[]).push([[285],{1563:function(e,a,t){t.d(a,{A:function(){return c}});var n=t(6540),i=t(6711);function c(e){let{children:a,to:t,text:c}=e;return c?n.createElement(i.N,{to:t,className:"inner__link"},c):n.createElement(i.N,{to:t,className:"inner__link"},a)}},5349:function(e,a,t){t.d(a,{$c:function(){return c},Lc:function(){return A},Sv:function(){return o},UA:function(){return i}});var n=t(6540);function i(e){let{className:a}=e,t="gradient-round gradient-round-1";return a&&(t+=" "+a),n.createElement("div",{className:t})}function c(e){let{className:a}=e,t="gradient-round gradient-round-2";return a&&(t+=" "+a),n.createElement("div",{className:t})}function o(e){let{className:a}=e,t="gradient-round gradient-round-blog-1";return a&&(t+=" "+a),n.createElement("div",{className:t})}function A(e){let{className:a}=e,t="gradient-round gradient-round-blog-2";return a&&(t+=" "+a),n.createElement("div",{className:t})}},79:function(e,a,t){t.d(a,{S:function(){return o},v:function(){return c}});var n=t(6540),i=t(2532);const c=[{id:"uls-token",date:"2023-12-15T12:00:00.000Z",title:{en:"UNITS LIMITED SUPPLY (ULS) TOKEN",ru:"UNITS LIMITED SUPPLY (ULS) TOKEN"},desc:{en:"Cross-chain token on the Ethereum and Arbitrum blockchains with staking and annual halving. For halving, the Golden Ratio formula is applied. The project was created from a turnkey idea in 2 months. Created a unique design, smart contracts and website using React.js. WalletConnect was used to connect to the wallet.",ru:"Кроссчейн токен на блокчейнах Ethereum и Arbitrum со стейкингом и ежегодным халвингом. Для халвинга применена формула Золотого сечения. Проект был создан с идеи «под ключ» за 2 месяца. Создан уникальный дизайн, смарт-контракты и веб-сайт на React.js. Для подключения к кошельку использовался WalletConnect."},img:(e,a)=>n.createElement(i.S,{alt:e.title[a.language],title:e.title[a.language],src:"../assets/images/portfolio/uls-token.png",placeholder:"blurred",__imageData:t(4393)}),link:"/portfolio/uls-token/",tags:["all","blockchain","ethereum","arbitrum-one","token","defi"]},{id:"world-millionaire-challenge",date:"2023-10-15T12:00:00.000Z",title:{en:"World Millionaire Challenge",ru:"World Millionaire Challenge"},desc:{en:"Big daily lottery project. The project was created from a turnkey idea in 4 months. Created a unique design, smart contracts and website using React.js. WalletConnect was used to connect to the wallet. Implemented a personal user account, purchasing subscriptions, and a massive backend for working with the database and blockchain.",ru:"Большой проект ежедневной лотереи. Проект был создан с идеи «под ключ» за 4 месяца. Создан уникальный дизайн, смарт-контракты и веб-сайт на React.js. Для подключения к кошельку использовался WalletConnect. Реализован личный кабинет пользователей, покупка подписок, массивный бэкенд для работы с базой данных и блокчейном."},img:(e,a)=>n.createElement(i.S,{alt:e.title[a.language],title:e.title[a.language],src:"../assets/images/portfolio/world-millionaire-challenge.png",placeholder:"blurred",__imageData:t(2117)}),link:"/portfolio/world-millionaire-challenge/",tags:["all","blockchain","bsc","token","gamefi","nft"]},{id:"poolex-ai",date:"2022-07-15T12:00:00.000Z",title:{en:"Poolex.ai",ru:"Poolex.ai"},desc:{en:"A Uniswap V2 fork was created for the customer - Automated market makers (AMM). I created a fork of smart contracts and a web interface. The Polygon (Matic) network has been added. Placement on the blockchain and on a domain name. Posting code on GitHub. Project completion time is 2 weeks.",ru:"Для заказчика был создан форк Uniswap V2 - автоматический маркет мейкер (AMM). Мною был создан форк смарт контрактов и веб интерфейса. Была добавлена сеть Polygon (Matic). Размещение в блокчейне и на доменном имени. Размещение кода на GitHub. Время выполнения проекта 2 недели."},img:(e,a)=>n.createElement(i.S,{alt:e.title[a.language],title:e.title[a.language],src:"../assets/images/portfolio/poolex-ai.png",placeholder:"blurred",__imageData:t(4569)}),link:"/portfolio/poolex-ai/",tags:["all","blockchain","polygon","defi"]},{id:"roborovski-nft",date:"2022-02-18T12:00:00.000Z",title:{en:"Roborovski NFT Collection by SYA Concept",ru:"Roborovski NFT Collection by SYA Concept"},desc:{en:"Cool NFT collection from a famous studio with great art. I have completed work on developing smart contracts, creating and loading metadata, on-chain metadata, a react.js website with mint and a personal account, a backend for the raffle whitelist and protection against attacks on mint.",ru:"Крутая NFT коллекция от известной студии с великолепным артом. Мной были выполнены работы по разработке смарт-контрактов, созданию и загрузке метаданных, он-чейн метаднные, сайт на react.js с минтом и личным кабинетом, бэкенд для рафла вайтлиста и защиты от атаки на минт."},img:(e,a)=>n.createElement(i.S,{alt:e.title[a.language],title:e.title[a.language],src:"../assets/images/portfolio/roborovski-nft.jpeg",placeholder:"blurred",__imageData:t(1663)}),link:"/portfolio/roborovski-nft/",tags:["all","blockchain","ethereum","nft"]},{id:"grabcoinclub-nft",date:"2022-08-15T12:00:00.000Z",title:{en:"GrabCoinClub NFTs",ru:"GrabCoinClub NFTs"},desc:{en:"Several NFT collections for GrabCoinClub. I have completed work on developing smart contracts, creating and loading metadata, connecting the front end to the wallet and blockchain, the back end for the whitelist and protection against attacks on mint.",ru:"Несколько NFT коллекций для GrabCoinClub. Мной были выполнены работы по разработке смарт-контрактов, созданию и загрузке метаданных, подключение фронтенда к кошельку и блокчейну, бэкенд для вайтлиста и защиты от атаки на минт."},img:(e,a)=>n.createElement(i.S,{alt:e.title[a.language],title:e.title[a.language],src:"../assets/images/portfolio/grabcoinclub-nft.png",placeholder:"blurred",__imageData:t(3011)}),link:"/portfolio/grabcoinclub-nft/",tags:["all","blockchain","polygon","nft","gamefi"]},{id:"fibonacci-assistant-telegram-bot",date:"2024-03-18T12:00:00.000Z",title:{en:"Fibonacci Assistant Telegram Bot",ru:"Fibonacci Assistant Telegram Bot"},desc:{en:'Tech support Telegram Bot for the "Fibonacci Protocol" channel. Checking referral subscriptions, inviting to a closed group, banning users. TODO I have completed work on developing smart contracts, creating and loading metadata, connecting the front end to the wallet and blockchain, the back end for the whitelist and protection against attacks on mint.',ru:"Телеграм бот техподдержки канала «Протокол Фибоначчи». Проверка реферальных подписок, приглашение в закрытую группу, бан пользователей. TODO Мной были выполнены работы по разработке смарт-контрактов, созданию и загрузке метаданных, подключение фронтенда к кошельку и блокчейну, бэкенд для вайтлиста и защиты от атаки на минт."},img:(e,a)=>n.createElement(i.S,{alt:e.title[a.language],title:e.title[a.language],src:"../assets/images/portfolio/fibonacci-assistant-telegram-bot.png",placeholder:"blurred",__imageData:t(1108)}),link:"/portfolio/fibonacci-assistant-telegram-bot/",tags:["all","telegram"]}],o=[{id:"all",name:"All"},{id:"telegram",name:"Telegram"},{id:"blockchain",name:"Blockchain"},{id:"nft",name:"NFT"},{id:"defi",name:"DeFi"},{id:"gamefi",name:"GameFi"},{id:"ethereum",name:"Ethereum"},{id:"bsc",name:"BSC"},{id:"polygon",name:"Polygon"},{id:"arbitrum-one",name:"Arbitrum One"}]},1550:function(e,a,t){t.d(a,{A:function(){return l}});var n=t(6540),i=t(2389),c=t(7134),o=t(6348),A=t(6004);function l(e){let{preTitle:a,title:t,description:l,descriptionComponent:s,imageComponent:r}=e;const{t:d}=(0,i.Bd)("translation"),{open:b}=(0,c.hS)("GetInTouchModal");return n.createElement("section",{id:"section-start",className:"section section-start"},n.createElement("div",{className:"container"},n.createElement("div",{className:"row"},n.createElement("div",{className:"col-12 col-md-7 col-lg-6 col-xl-6 relative"},n.createElement("div",{className:"pre-title"},a&&n.createElement("span",null,a)),n.createElement("h1",{className:""},t),n.createElement("p",{className:"desc"},l),s&&s,n.createElement("div",{className:"start-btns"},n.createElement(o.A,{variant:"gradient",size:"static",className:"btn",onClick:b},d("Get in Touch")))),n.createElement("div",{className:"col-12 col-md-5 col-lg-6 col-xl-6"},n.createElement("div",{className:"start__image"},r||n.createElement("img",{alt:d("IVANNIKOV.PRO"),title:d("IVANNIKOV.PRO"),src:A.A}))))))}},6004:function(e,a,t){a.A=t.p+"static/main-ea93608a8a6b40bc2e18348041b646cc.webp"},1108:function(e){e.exports=JSON.parse('{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAAAsTAAALEwEAmpwYAAACMElEQVR42o2Sy24SYRiGexNaoDCHn5lykBIOUqBAYaagVCiltU002lhbCYi1LrSmNcHGNmqsph5WxkW1iYkm1YXxDrwCN8aFF/P6DgwtCxcunvnnO+Sd9/vmH1IUBRaqqiDo90LXVXiFCv+ogK71TiHYw7quCYwSv08gQELst+K+hsWQJeQakWCkAvi4ZWB9IY6nzQkcPSriGc9PHRPPb2XxYbOAN+s5fGb8pJHu9u2upnH3UgL1QgjDLglCtQUdFCzngthdSWHRHMN+O4Pvj0vYa2bwbaeEV2tZfHlo4vXtLI46BvZaGTRqUeyspHH/cgJXzoVxyunpCVo2ZVnpjnmPxeVKBFtL42jNxvBgKYnGTBR3FuNYrUa6blr1WLdnezmFtfk4pjNBKPLgyHxIksxdqPjxchovOOafwzoONvL4/X4WG/zIfjuLd4x/vp3B4aaBNoV+HdTwdXsKnWtJe1y1J9h3qFGwnDsDlUu+TndzHP3mxTiy434U0gFcyIdwg+4WzodR486aczHMl8ZwlW41r9rVOBaUiI+JKY+MIt/zTgkxt4wk91Kh+5KkwGRcdMko87RqEbqq8Cxw/z5b48Qh0YjJLxncZVnzIk2nBl1XGZukIAQqzFfZE2GcYb1u9TD22hrHgn1RF3GS03TlsqBrh523cNh4iJsM23l58B4OXkphMxH1YTLhR0AXUOWTfB/Vph8r/xK07qObO0xR7GxYR46Ck/whI8xZNUX5P/4CKNFmfZCIsSMAAAAASUVORK5CYII="},"backgroundColor":"transparent","images":{"fallback":{"src":"/static/85a6d2911ac1c4941c2d69ed55356ec3/35c90/fibonacci-assistant-telegram-bot.png","srcSet":"/static/85a6d2911ac1c4941c2d69ed55356ec3/8fb24/fibonacci-assistant-telegram-bot.png 576w,\\n/static/85a6d2911ac1c4941c2d69ed55356ec3/35c90/fibonacci-assistant-telegram-bot.png 640w","sizes":"(min-width: 640px) 640px, 100vw"},"sources":[{"srcSet":"/static/85a6d2911ac1c4941c2d69ed55356ec3/2a67b/fibonacci-assistant-telegram-bot.webp 576w,\\n/static/85a6d2911ac1c4941c2d69ed55356ec3/a58c7/fibonacci-assistant-telegram-bot.webp 640w","type":"image/webp","sizes":"(min-width: 640px) 640px, 100vw"}]},"width":640,"height":360}')},4569:function(e){e.exports=JSON.parse('{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAIAAAA7N+mxAAAACXBIWXMAAAsTAAALEwEAmpwYAAABQ0lEQVR42o3QS27DIBCA4dz/At31Cj1Cl1GrbKskNdjO0wY/wMYGwwxxsdO3IrXSt0L6NcMsTqucLhMZgSQgriKoY1evR333rF+emmosqGMUij2yU8fPuomdJJ3I1aLe9OVaNeQrriOoIii3WK1kuRU8AUZmMeSpZTvHwkvi8r1dKIrBVxxBs4eOQce9qi6KX1rmW+4b7stD6DFPIEsn5x0uFIGWwPe4r10/WD+O6P0nQFAC8jA8CfOvMdyIjfCC8DbJtLF6cB9s3/g/4nqKQT0s5f2jbnqjrdGDMdYMQyf/EVvpL9Z6Y1EoyGovlG/7sde9xBtx83NtmUK7n84mjxiIqxMWu/c/Z78mt+HgFOVMEKwJVhRLigWZcIqMIo+RpZN8N5niqYxctTXFWvMZm+Ubnc3OW30KXvUxiPThiphz6t4AmRYsEZAJE2gAAAAASUVORK5CYII="},"backgroundColor":"transparent","images":{"fallback":{"src":"/static/1e6b99ebed5fde7ec226482495663b76/3d4e1/poolex-ai.png","srcSet":"/static/1e6b99ebed5fde7ec226482495663b76/3dcd8/poolex-ai.png 576w,\\n/static/1e6b99ebed5fde7ec226482495663b76/1bb6d/poolex-ai.png 768w,\\n/static/1e6b99ebed5fde7ec226482495663b76/4654f/poolex-ai.png 992w,\\n/static/1e6b99ebed5fde7ec226482495663b76/52aa2/poolex-ai.png 1200w,\\n/static/1e6b99ebed5fde7ec226482495663b76/3d4e1/poolex-ai.png 3048w","sizes":"(min-width: 3048px) 3048px, 100vw"},"sources":[{"srcSet":"/static/1e6b99ebed5fde7ec226482495663b76/858d8/poolex-ai.webp 576w,\\n/static/1e6b99ebed5fde7ec226482495663b76/2b4d8/poolex-ai.webp 768w,\\n/static/1e6b99ebed5fde7ec226482495663b76/8cb7c/poolex-ai.webp 992w,\\n/static/1e6b99ebed5fde7ec226482495663b76/4d3b1/poolex-ai.webp 1200w,\\n/static/1e6b99ebed5fde7ec226482495663b76/32b59/poolex-ai.webp 3048w","type":"image/webp","sizes":"(min-width: 3048px) 3048px, 100vw"}]},"width":3048,"height":1464}')},1663:function(e){e.exports=JSON.parse('{"layout":"constrained","placeholder":{"fallback":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAHABQDASIAAhEBAxEB/8QAFwABAAMAAAAAAAAAAAAAAAAAAAEDBP/EABQBAQAAAAAAAAAAAAAAAAAAAAL/2gAMAwEAAhADEAAAAasAXAQ//8QAGRAAAgMBAAAAAAAAAAAAAAAAAQIAAxIR/9oACAEBAAEFAtisFl11J//EABYRAQEBAAAAAAAAAAAAAAAAAAACEf/aAAgBAwEBPwGqa//EABYRAQEBAAAAAAAAAAAAAAAAAAABEf/aAAgBAgEBPwGRj//EABkQAAIDAQAAAAAAAAAAAAAAAAABAhEhMv/aAAgBAQAGPwJ29NjZwf/EABoQAQACAwEAAAAAAAAAAAAAAAEAESExUfD/2gAIAQEAAT8hQKFqxGJ3Oz0Z/9oADAMBAAIAAwAAABAMH//EABgRAAMBAQAAAAAAAAAAAAAAAAABEVGh/9oACAEDAQE/EHN0vOH/xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQIBAT8Qgy//xAAdEAEAAgAHAAAAAAAAAAAAAAABABEhMUFhcaHR/9oACAEBAAE/EFgMCto5pxiS0SbWModiOn2ez//Z"},"backgroundColor":"transparent","images":{"fallback":{"src":"/static/ba2e3029ff1dcb1f9ad4e41525648ead/ebf5a/roborovski-nft.jpg","srcSet":"/static/ba2e3029ff1dcb1f9ad4e41525648ead/e3979/roborovski-nft.jpg 576w,\\n/static/ba2e3029ff1dcb1f9ad4e41525648ead/cabe4/roborovski-nft.jpg 768w,\\n/static/ba2e3029ff1dcb1f9ad4e41525648ead/32a37/roborovski-nft.jpg 992w,\\n/static/ba2e3029ff1dcb1f9ad4e41525648ead/026c2/roborovski-nft.jpg 1200w,\\n/static/ba2e3029ff1dcb1f9ad4e41525648ead/ebf5a/roborovski-nft.jpg 1500w","sizes":"(min-width: 1500px) 1500px, 100vw"},"sources":[{"srcSet":"/static/ba2e3029ff1dcb1f9ad4e41525648ead/fa78f/roborovski-nft.webp 576w,\\n/static/ba2e3029ff1dcb1f9ad4e41525648ead/93b0f/roborovski-nft.webp 768w,\\n/static/ba2e3029ff1dcb1f9ad4e41525648ead/d2257/roborovski-nft.webp 992w,\\n/static/ba2e3029ff1dcb1f9ad4e41525648ead/b7921/roborovski-nft.webp 1200w,\\n/static/ba2e3029ff1dcb1f9ad4e41525648ead/f44fb/roborovski-nft.webp 1500w","type":"image/webp","sizes":"(min-width: 1500px) 1500px, 100vw"}]},"width":1500,"height":500}')},4393:function(e){e.exports=JSON.parse('{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAIAAADtbgqsAAAACXBIWXMAAAsTAAALEwEAmpwYAAACbUlEQVR42i1Rz2vUQBTOTbtNd/NrZjKZmUySSbLJbrbd7W43W0qRVgShSlE8tFDqChZX2oNoPQnePGilRfAHXnooCPbQikopKHjRg3+Wb4swM29+fd/73vc0G2PVbmNMqtVaZVKfqlYndR0ijIo+petTDqVBoxnWs2a/TLPcerRz+dNhZWdkXprQEMLMl5ZpucJfH42Wbt1eWV+/sbFxfW1tbTS6ublZb3dkozm/sz34+L58/aoYbpKlK3bRrFVrGiGu9KXjIExpd35+utvrlIOZfn96rt9bWGiXg6ielVv3536cucdHxfnX8uiwvbgoGDdMU8PE5VzY9hgu4ljWMxFGnHHP9ahLqceSJJ3d3yu/n9z5drL181x8OS7vDT3GTMvSiOt6jFs1w4pU5eDlxIc3xvYDikAQhenLQKl47vmz8Ox09++f4e9f/PRzZ3UV3g3T0izLgbIty4ZIlUJBgIQPVwgkudTjnDKWDgbR9sP60yfB7uN8eJcphV1qGCaAbcd2TNOC33meCxDqUiH8OE6yLA9kABfFzEyrMwulZt1uVhRFu80Yr43BUC7CgHcw4XHi+5IJP1IxEGWtlkhS6GIYRiIIJKwy8AM4RWDGReaxVWjMgFDguhwoHOwLH3wKwohyAeLTegZ70CIDiFGcJP/ByEHATOLYVqr67kDfezH5dp/0el6aukVBqAfOQa4wUp7HMCGArmc57I2aoXGPCRWTKLIZQ1eX7Zsr6NoySRPcbOBWC3MO/7K8kecNX0ooNVKq05mFLowzgxigRY4DysF+hDE2THAaSYnBLcYhM4ikFxKgeWABGfeBmpb9D3FqdsLwSssEAAAAAElFTkSuQmCC"},"backgroundColor":"transparent","images":{"fallback":{"src":"/static/d317e03cae40c8b8bd4ada459ffda929/87955/uls-token.png","srcSet":"/static/d317e03cae40c8b8bd4ada459ffda929/e8ce6/uls-token.png 576w,\\n/static/d317e03cae40c8b8bd4ada459ffda929/086c2/uls-token.png 768w,\\n/static/d317e03cae40c8b8bd4ada459ffda929/b3c76/uls-token.png 992w,\\n/static/d317e03cae40c8b8bd4ada459ffda929/8bf62/uls-token.png 1200w,\\n/static/d317e03cae40c8b8bd4ada459ffda929/87955/uls-token.png 3021w","sizes":"(min-width: 3021px) 3021px, 100vw"},"sources":[{"srcSet":"/static/d317e03cae40c8b8bd4ada459ffda929/c510a/uls-token.webp 576w,\\n/static/d317e03cae40c8b8bd4ada459ffda929/52359/uls-token.webp 768w,\\n/static/d317e03cae40c8b8bd4ada459ffda929/3fccf/uls-token.webp 992w,\\n/static/d317e03cae40c8b8bd4ada459ffda929/53cb2/uls-token.webp 1200w,\\n/static/d317e03cae40c8b8bd4ada459ffda929/8af60/uls-token.webp 3021w","type":"image/webp","sizes":"(min-width: 3021px) 3021px, 100vw"}]},"width":3021,"height":1740}')},3011:function(e){e.exports=JSON.parse('{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACcElEQVR42jWR20/TABTGOxljw5VdYKy062Vbt7GtW7u1a9e1K7D7pezCbsCYilEiMK66qLxoSHjQ6AvBxMTog89qYnzySX3nj7KAJl++p/M73/lyAN5X7Sj3vBaGQUQGlai51LxTRkEeNkUhYwya5B1GFgGTMxOsD8r4nEv4jNzBnn+IvFOna4Bzgs1xaxu1oSoP5Gjz0cbTgtjvqcO1+t5mb5QV+v3GYV4ctErb7fKOJj+UmdHHYaPgNHCAfYwJwFmJ7yeYdpxUhXDLP5eNEEU50hVCzSCSi5FV2JyMukuEPR0hSpg1ZdXRswZWE+AYj0OTYuXZ6+L9kREITehwuy6sbVwpveUTBxaAQswyZlW0GdgsIeYUZkl7phedRt7xH+YDvjrpkc5L3a/S97r3DJ4s0sFBAFlxgaKq3ClK61m+l0l0M4leRlhd4FZdoHQNG1ingR0DInfRwp/255PCZZv97bHv2W4JNh2FW6QFKkejEoPJrDsddckMsUTOKrA5dQVrp9vG2XlQ+IU+fC++aLWG66kDldoizBW7PoaCEu1eZjy1ONmIECrra7BkPYgU4NviFazFgnqu7Exsh+mz/HD35OLx6NW343P/lGodZ7EpiXGrtLuiKYKX497lKF6eR/Iu8F8yBwIUahLb+M7+/umnH5cXH3+e7r4cNTuQiYVMSc7fiJPLLFnj/HXOVwtjJQ1Gp647T+tjQrBOuWv9UOeofXT45ktr61RRGrvVTRqvRAlVS4t5r91T1Zx2V4OuPHLTWftKjh+IoWaS3lCTT6rF47zyYJHrZbi1FNUVQz3SsRSAcrhNuRFhVzBb+gb+C9/mjoi9pCI1AAAAAElFTkSuQmCC"},"backgroundColor":"transparent","images":{"fallback":{"src":"/static/82365ce86fe87f29e868ea28eb45b510/ee4b4/grabcoinclub-nft.png","srcSet":"/static/82365ce86fe87f29e868ea28eb45b510/e73b4/grabcoinclub-nft.png 576w,\\n/static/82365ce86fe87f29e868ea28eb45b510/b33b5/grabcoinclub-nft.png 768w,\\n/static/82365ce86fe87f29e868ea28eb45b510/3e101/grabcoinclub-nft.png 992w,\\n/static/82365ce86fe87f29e868ea28eb45b510/e4813/grabcoinclub-nft.png 1200w,\\n/static/82365ce86fe87f29e868ea28eb45b510/ee4b4/grabcoinclub-nft.png 3008w","sizes":"(min-width: 3008px) 3008px, 100vw"},"sources":[{"srcSet":"/static/82365ce86fe87f29e868ea28eb45b510/4dfce/grabcoinclub-nft.webp 576w,\\n/static/82365ce86fe87f29e868ea28eb45b510/f5d56/grabcoinclub-nft.webp 768w,\\n/static/82365ce86fe87f29e868ea28eb45b510/21051/grabcoinclub-nft.webp 992w,\\n/static/82365ce86fe87f29e868ea28eb45b510/d7d32/grabcoinclub-nft.webp 1200w,\\n/static/82365ce86fe87f29e868ea28eb45b510/3fbe6/grabcoinclub-nft.webp 3008w","type":"image/webp","sizes":"(min-width: 3008px) 3008px, 100vw"}]},"width":3008,"height":1720}')},2117:function(e){e.exports=JSON.parse('{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAIAAAA7N+mxAAAACXBIWXMAAAsTAAALEwEAmpwYAAABxUlEQVR42nWRa2vTUBjHczuX5pz0JDFNzK1naZp27UZF4sZ8IaIytcwXKu3mtNBCESyWFtqBTtpiBfGDCL7wU5q0oGXgH87DA39+z+0IClKJxkQhl7wRAOBv3CaKosjZwyo0LJYcUp+73aval1+CKMmZkZGiuK0g3MgxhkTFCEFEKDYttVw3H71hR6ekluY2pTSOY13Xbdv2PC+LjDHHcVzXzSJCKGuNMMbMJC4nYayfvLjdnUBm5HCj0Vgul4PBYDabrVar+Xw+Go2m0+l6vf58fe37HgQSpsWCHWJ+QOJWsdqKP3y3HrRzmHPe7/eHw2Gv1+t0Ou12e7FYjMdjwzC2h0AYapatV5pm+qR6eUUrh3sX48pglsOEkMoe52EQBn6SJNnY2QpRFEEIN7CECpi5gb6f3jo5i16NCG+6T9+2Jt9yWAGQ6pbKTIjVG9faSgIImC6tpfbx8/D4MfGi8un5vcnX3CvEd6ufftaXv4v3X+awJO+AeSFRgYrh4HKT7h/R6h1o2o13E959v/EhhpYPS4GsFv91k3Z+TgEy1UEpVIME2T4N4/rHH9pBKvxPu7OLkiRBLBMGmKVorPTwtfPsUqHaHxA2P9Dr3OEaAAAAAElFTkSuQmCC"},"backgroundColor":"transparent","images":{"fallback":{"src":"/static/b1d568c729843866fc0431b8c36f6205/6b52d/world-millionaire-challenge.png","srcSet":"/static/b1d568c729843866fc0431b8c36f6205/f1a27/world-millionaire-challenge.png 576w,\\n/static/b1d568c729843866fc0431b8c36f6205/dbb14/world-millionaire-challenge.png 768w,\\n/static/b1d568c729843866fc0431b8c36f6205/42271/world-millionaire-challenge.png 992w,\\n/static/b1d568c729843866fc0431b8c36f6205/4cca8/world-millionaire-challenge.png 1200w,\\n/static/b1d568c729843866fc0431b8c36f6205/6b52d/world-millionaire-challenge.png 3038w","sizes":"(min-width: 3038px) 3038px, 100vw"},"sources":[{"srcSet":"/static/b1d568c729843866fc0431b8c36f6205/549df/world-millionaire-challenge.webp 576w,\\n/static/b1d568c729843866fc0431b8c36f6205/0757f/world-millionaire-challenge.webp 768w,\\n/static/b1d568c729843866fc0431b8c36f6205/305aa/world-millionaire-challenge.webp 992w,\\n/static/b1d568c729843866fc0431b8c36f6205/3a993/world-millionaire-challenge.webp 1200w,\\n/static/b1d568c729843866fc0431b8c36f6205/d2f3a/world-millionaire-challenge.webp 3038w","type":"image/webp","sizes":"(min-width: 3038px) 3038px, 100vw"}]},"width":3038,"height":1468}')}}]); +//# sourceMappingURL=300e51b05a0b4b20aae48962394b29fdd9ce5498-fb243d0ea76e1eeb5985.js.map \ No newline at end of file diff --git a/300e51b05a0b4b20aae48962394b29fdd9ce5498-fb243d0ea76e1eeb5985.js.map b/300e51b05a0b4b20aae48962394b29fdd9ce5498-fb243d0ea76e1eeb5985.js.map new file mode 100644 index 0000000..5fe68d0 --- /dev/null +++ b/300e51b05a0b4b20aae48962394b29fdd9ce5498-fb243d0ea76e1eeb5985.js.map @@ -0,0 +1 @@ +{"version":3,"file":"300e51b05a0b4b20aae48962394b29fdd9ce5498-fb243d0ea76e1eeb5985.js","mappings":"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","sources":["webpack://ivannikov.pro-website/./src/components/InnerLink.jsx","webpack://ivannikov.pro-website/./src/components/elements/GradientRound.jsx","webpack://ivannikov.pro-website/./src/data/portfolio.jsx","webpack://ivannikov.pro-website/./src/screens/ScreenStart.jsx","webpack://ivannikov.pro-website/./src/assets/images/main.webp"],"sourcesContent":["import './InnerLink.scss';\n\nimport React from 'react';\nimport { Link, } from './Link';\n\n\n\nexport default function InnerLink({ children, to, text, }) {\n if (text)\n return (\n {text}\n );\n\n return (\n {children}\n );\n};\n","import './GradientRound.scss';\n\nimport React from 'react';\n\n\n\nexport function GradientRound1({ className, }) {\n let clsName = `gradient-round gradient-round-1`;\n if (className) clsName += ` ${className}`;\n return (
);\n};\n\n\nexport function GradientRound2({ className, }) {\n let clsName = `gradient-round gradient-round-2`;\n if (className) clsName += ` ${className}`;\n return (
);\n};\n\nexport function GradientRoundBlog1({ className, }) {\n let clsName = `gradient-round gradient-round-blog-1`;\n if (className) clsName += ` ${className}`;\n return (
);\n};\n\n\nexport function GradientRoundBlog2({ className, }) {\n let clsName = `gradient-round gradient-round-blog-2`;\n if (className) clsName += ` ${className}`;\n return (
);\n};\n","import React from 'react';\n\n// https://www.gatsbyjs.com/docs/how-to/images-and-media/using-gatsby-plugin-image/\nimport { StaticImage, } from 'gatsby-plugin-image';\n\n\n\nexport const portfolioList = [\n {\n id: 'uls-token',\n date: '2023-12-15T12:00:00.000Z',\n title: {\n en: 'UNITS LIMITED SUPPLY (ULS) TOKEN',\n ru: 'UNITS LIMITED SUPPLY (ULS) TOKEN',\n },\n desc: {\n en: 'Cross-chain token on the Ethereum and Arbitrum blockchains with staking and annual halving. For halving, the Golden Ratio formula is applied. The project was created from a turnkey idea in 2 months. Created a unique design, smart contracts and website using React.js. WalletConnect was used to connect to the wallet.',\n ru: 'Кроссчейн токен на блокчейнах Ethereum и Arbitrum со стейкингом и ежегодным халвингом. Для халвинга применена формула Золотого сечения. Проект был создан с идеи «под ключ» за 2 месяца. Создан уникальный дизайн, смарт-контракты и веб-сайт на React.js. Для подключения к кошельку использовался WalletConnect.',\n },\n img: (item, i18n) => ,\n //img2x: '../assets/images/portfolio/uls-token.png',\n //icon: UklTokenImage,\n link: '/portfolio/uls-token/',\n tags: ['all', 'blockchain', 'ethereum', 'arbitrum-one', 'token', 'defi',],\n },\n\n {\n id: 'world-millionaire-challenge',\n date: '2023-10-15T12:00:00.000Z',\n title: {\n en: 'World Millionaire Challenge',\n ru: 'World Millionaire Challenge',\n },\n desc: {\n en: 'Big daily lottery project. The project was created from a turnkey idea in 4 months. Created a unique design, smart contracts and website using React.js. WalletConnect was used to connect to the wallet. Implemented a personal user account, purchasing subscriptions, and a massive backend for working with the database and blockchain.',\n ru: 'Большой проект ежедневной лотереи. Проект был создан с идеи «под ключ» за 4 месяца. Создан уникальный дизайн, смарт-контракты и веб-сайт на React.js. Для подключения к кошельку использовался WalletConnect. Реализован личный кабинет пользователей, покупка подписок, массивный бэкенд для работы с базой данных и блокчейном.',\n },\n img: (item, i18n) => ,\n //img2x: '../assets/images/portfolio/world-millionaire-challenge.png',\n link: '/portfolio/world-millionaire-challenge/',\n tags: ['all', 'blockchain', 'bsc', 'token', 'gamefi', 'nft',],\n },\n\n\n {\n id: 'poolex-ai',\n date: '2022-07-15T12:00:00.000Z',\n title: {\n en: 'Poolex.ai',\n ru: 'Poolex.ai',\n },\n desc: {\n en: 'A Uniswap V2 fork was created for the customer - Automated market makers (AMM). I created a fork of smart contracts and a web interface. The Polygon (Matic) network has been added. Placement on the blockchain and on a domain name. Posting code on GitHub. Project completion time is 2 weeks.',\n ru: 'Для заказчика был создан форк Uniswap V2 - автоматический маркет мейкер (AMM). Мною был создан форк смарт контрактов и веб интерфейса. Была добавлена сеть Polygon (Matic). Размещение в блокчейне и на доменном имени. Размещение кода на GitHub. Время выполнения проекта 2 недели.',\n },\n img: (item, i18n) => ,\n //img2x: '../assets/images/portfolio/poolex-ai.png',\n link: '/portfolio/poolex-ai/',\n // https://github.com/grabcoinclub/dex\n tags: ['all', 'blockchain', 'polygon', 'defi',],\n },\n\n\n\n {\n id: 'roborovski-nft',\n date: '2022-02-18T12:00:00.000Z',\n title: {\n en: 'Roborovski NFT Collection by SYA Concept',\n ru: 'Roborovski NFT Collection by SYA Concept',\n },\n desc: {\n en: 'Cool NFT collection from a famous studio with great art. I have completed work on developing smart contracts, creating and loading metadata, on-chain metadata, a react.js website with mint and a personal account, a backend for the raffle whitelist and protection against attacks on mint.',\n ru: 'Крутая NFT коллекция от известной студии с великолепным артом. Мной были выполнены работы по разработке смарт-контрактов, созданию и загрузке метаданных, он-чейн метаднные, сайт на react.js с минтом и личным кабинетом, бэкенд для рафла вайтлиста и защиты от атаки на минт.',\n },\n img: (item, i18n) => ,\n //img2x: '../assets/images/portfolio/roborovski-nft.jpeg',\n link: '/portfolio/roborovski-nft/',\n tags: ['all', 'blockchain', 'ethereum', 'nft',],\n },\n\n\n {\n id: 'grabcoinclub-nft',\n date: '2022-08-15T12:00:00.000Z',\n title: {\n en: 'GrabCoinClub NFTs',\n ru: 'GrabCoinClub NFTs',\n },\n desc: {\n en: 'Several NFT collections for GrabCoinClub. I have completed work on developing smart contracts, creating and loading metadata, connecting the front end to the wallet and blockchain, the back end for the whitelist and protection against attacks on mint.',\n ru: 'Несколько NFT коллекций для GrabCoinClub. Мной были выполнены работы по разработке смарт-контрактов, созданию и загрузке метаданных, подключение фронтенда к кошельку и блокчейну, бэкенд для вайтлиста и защиты от атаки на минт.',\n },\n img: (item, i18n) => ,\n //img2x: '../assets/images/portfolio/grabcoinclub-nft.png',\n link: '/portfolio/grabcoinclub-nft/',\n tags: ['all', 'blockchain', 'polygon', 'nft', 'gamefi'],\n },\n\n\n\n {\n id: 'fibonacci-assistant-telegram-bot',\n date: '2024-03-18T12:00:00.000Z',\n title: {\n en: 'Fibonacci Assistant Telegram Bot',\n ru: 'Fibonacci Assistant Telegram Bot',\n },\n desc: {\n en: 'Tech support Telegram Bot for the \\\"Fibonacci Protocol\\\" channel. Checking referral subscriptions, inviting to a closed group, banning users. TODO I have completed work on developing smart contracts, creating and loading metadata, connecting the front end to the wallet and blockchain, the back end for the whitelist and protection against attacks on mint.',\n ru: 'Телеграм бот техподдержки канала «Протокол Фибоначчи». Проверка реферальных подписок, приглашение в закрытую группу, бан пользователей. TODO Мной были выполнены работы по разработке смарт-контрактов, созданию и загрузке метаданных, подключение фронтенда к кошельку и блокчейну, бэкенд для вайтлиста и защиты от атаки на минт.',\n },\n img: (item, i18n) => ,\n //img2x: '../assets/images/portfolio/fibonacci-assistant-telegram-bot.png',\n link: '/portfolio/fibonacci-assistant-telegram-bot/',\n tags: ['all', 'telegram'],\n },\n];\n\n\nexport const portfolioTags = [\n { id: 'all', name: 'All', },\n //{ id: 'trending', name: 'Trending', },\n //{ id: 'top', name: 'Top', },\n { id: 'telegram', name: 'Telegram', },\n { id: 'blockchain', name: 'Blockchain', },\n { id: 'nft', name: 'NFT', },\n { id: 'defi', name: 'DeFi', },\n { id: 'gamefi', name: 'GameFi', },\n //{ id: 'bitcoin', name: 'Bitcoin', },\n { id: 'ethereum', name: 'Ethereum', },\n { id: 'bsc', name: 'BSC', },\n { id: 'polygon', name: 'Polygon', },\n { id: 'arbitrum-one', name: 'Arbitrum One', },\n\n //{ id: 'altcoins', name: 'Altcoins', },\n /*{ id: 'press-releases', name: 'Press releases', },\n { id: 'popular-on-tiktok', name: 'Popular on TikTok', },\n { id: 'top-nft-collection', name: 'TOP NFT Collection', },\n { id: '', name: 'YouTube Allstars', },\n { id: '', name: 'Trending NFT’s', },\n { id: '', name: 'Trending Crypto', },\n { id: '', name: 'Trending Tweets', },\n { id: '', name: 'Technical Guru’s', },\n { id: '', name: 'Live Feed', },\n { id: '', name: 'Whale Alerts', },\n { id: '', name: 'Top Gainers,' },\n { id: '', name: 'Wall of Shame', },*/\n];\n","import './ScreenStart.scss';\n\nimport React from 'react';\nimport { useTranslation, } from 'react-i18next';\n\nimport { useModal, } from 'react-simple-modal-provider';\n\nimport CommonButton from '../components/CommonButton';\n\n//import ImageMain from '../assets/images/main.svg';\nimport ImageMain from '../assets/images/main.webp';\n\n\n\nexport default function ScreenStart({\n preTitle, title, description,\n descriptionComponent,\n imageComponent,\n}) {\n const { t, } = useTranslation('translation');\n const { open: openGetInTouchModal, } = useModal('GetInTouchModal');\n\n return (\n
\n
\n
\n
\n
{preTitle && {preTitle}}
\n

{title}

\n\n

{description}

\n {descriptionComponent && descriptionComponent}\n\n
\n {t('Get in Touch')}\n
\n
\n
\n
\n {imageComponent\n ? imageComponent\n : }\n
\n
\n
\n
\n
\n );\n}\n","export default __webpack_public_path__ + \"static/main-ea93608a8a6b40bc2e18348041b646cc.webp\";"],"names":["InnerLink","_ref","children","to","text","React","Link","className","GradientRound1","clsName","GradientRound2","_ref2","GradientRoundBlog1","_ref3","GradientRoundBlog2","_ref4","portfolioList","id","date","title","en","ru","desc","img","item","i18n","StaticImage","alt","language","src","placeholder","__imageData","require","link","tags","portfolioTags","name","ScreenStart","preTitle","description","descriptionComponent","imageComponent","t","useTranslation","open","openGetInTouchModal","useModal","CommonButton","variant","size","onClick","ImageMain"],"sourceRoot":""} \ No newline at end of file diff --git a/404.html b/404.html index ce70b0c..1a1d796 100644 --- a/404.html +++ b/404.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/404/index.html b/404/index.html index 5bcb751..9d060de 100644 --- a/404/index.html +++ b/404/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/48961b63b6895ca1a3cfd06c6a33e8758536e77c-2f81b2f96a88463aa92d.js.map b/48961b63b6895ca1a3cfd06c6a33e8758536e77c-2f81b2f96a88463aa92d.js.map deleted file mode 100644 index 3a6a4f4..0000000 --- a/48961b63b6895ca1a3cfd06c6a33e8758536e77c-2f81b2f96a88463aa92d.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"48961b63b6895ca1a3cfd06c6a33e8758536e77c-2f81b2f96a88463aa92d.js","mappings":"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","sources":["webpack://ivannikov.pro-website/../src/image-utils.ts","webpack://ivannikov.pro-website/../src/components/hooks.ts","webpack://ivannikov.pro-website/../src/components/layout-wrapper.tsx","webpack://ivannikov.pro-website/../src/components/picture.tsx","webpack://ivannikov.pro-website/../src/components/placeholder.tsx","webpack://ivannikov.pro-website/../src/components/main-image.tsx","webpack://ivannikov.pro-website/../src/components/gatsby-image.server.tsx","webpack://ivannikov.pro-website/../src/components/gatsby-image.browser.tsx","webpack://ivannikov.pro-website/../src/components/static-image.server.tsx","webpack://ivannikov.pro-website/../src/components/static-image.tsx","webpack://ivannikov.pro-website/./node_modules/gatsby-plugin-image/node_modules/camelcase/index.js","webpack://ivannikov.pro-website/./src/components/InnerLink.jsx"],"sourcesContent":["import camelCase from \"camelcase\"\nimport type { IGatsbyImageData } from \"./index\"\n\nconst DEFAULT_PIXEL_DENSITIES = [0.25, 0.5, 1, 2]\nexport const DEFAULT_BREAKPOINTS = [750, 1080, 1366, 1920]\nexport const EVERY_BREAKPOINT = [\n 320, 654, 768, 1024, 1366, 1600, 1920, 2048, 2560, 3440, 3840, 4096,\n]\nconst DEFAULT_FLUID_WIDTH = 800\nconst DEFAULT_FIXED_WIDTH = 800\nconst DEFAULT_ASPECT_RATIO = 4 / 3\n\nexport type Fit = \"cover\" | \"fill\" | \"inside\" | \"outside\" | \"contain\"\n\nexport type Layout = \"fixed\" | \"fullWidth\" | \"constrained\"\nexport type ImageFormat = \"jpg\" | \"png\" | \"webp\" | \"avif\" | \"auto\" | \"\"\n\n/**\n * The minimal required reporter, as we don't want to import it from gatsby-cli\n */\nexport interface IReporter {\n warn(message: string): void\n}\n\nexport interface ISharpGatsbyImageArgs {\n layout?: Layout\n formats?: Array\n placeholder?: \"tracedSVG\" | \"dominantColor\" | \"blurred\" | \"none\"\n tracedSVGOptions?: Record\n width?: number\n height?: number\n aspectRatio?: number\n sizes?: string\n quality?: number\n transformOptions?: {\n fit?: Fit\n cropFocus?: number | string\n duotone?: {\n highlight: string\n shadow: string\n opacity?: number\n }\n grayscale?: boolean\n rotate?: number\n trim?: number\n }\n jpgOptions?: Record\n pngOptions?: Record\n webpOptions?: Record\n avifOptions?: Record\n blurredOptions?: { width?: number; toFormat?: ImageFormat }\n breakpoints?: Array\n outputPixelDensities?: Array\n backgroundColor?: string\n}\n\nexport interface IImageSizeArgs {\n width?: number\n height?: number\n layout?: Layout\n filename: string\n outputPixelDensities?: Array\n breakpoints?: Array\n fit?: Fit\n reporter?: IReporter\n sourceMetadata: { width: number; height: number }\n}\n\nexport interface IImageSizes {\n sizes: Array\n presentationWidth: number\n presentationHeight: number\n aspectRatio: number\n unscaledWidth: number\n}\n\nexport interface IImage {\n src: string\n width: number\n height: number\n format: ImageFormat\n}\n\nexport interface IGatsbyImageHelperArgs {\n pluginName: string\n generateImageSource: (\n filename: string,\n width: number,\n height: number,\n format: ImageFormat,\n fit?: Fit,\n options?: Record\n ) => IImage\n layout?: Layout\n formats?: Array\n filename: string\n placeholderURL?: string\n width?: number\n height?: number\n sizes?: string\n reporter?: IReporter\n sourceMetadata?: { width: number; height: number; format: ImageFormat }\n fit?: Fit\n options?: Record\n breakpoints?: Array\n backgroundColor?: string\n aspectRatio?: number\n}\n\nconst warn = (message: string): void => console.warn(message)\n\nconst sortNumeric = (a: number, b: number): number => a - b\n\nexport const getSizes = (width: number, layout: Layout): string | undefined => {\n switch (layout) {\n // If screen is wider than the max size, image width is the max size,\n // otherwise it's the width of the screen\n case `constrained`:\n return `(min-width: ${width}px) ${width}px, 100vw`\n\n // Image is always the same width, whatever the size of the screen\n case `fixed`:\n return `${width}px`\n\n // Image is always the width of the screen\n case `fullWidth`:\n return `100vw`\n\n default:\n return undefined\n }\n}\n\nexport const getSrcSet = (images: Array): string =>\n images.map(image => `${image.src} ${image.width}w`).join(`,\\n`)\n\nexport function formatFromFilename(filename: string): ImageFormat | undefined {\n const dot = filename.lastIndexOf(`.`)\n if (dot !== -1) {\n const ext = filename.slice(dot + 1)\n if (ext === `jpeg`) {\n return `jpg`\n }\n if (ext.length === 3 || ext.length === 4) {\n return ext as ImageFormat\n }\n }\n return undefined\n}\n\nexport function setDefaultDimensions(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageHelperArgs {\n let {\n layout = `constrained`,\n width,\n height,\n sourceMetadata,\n breakpoints,\n aspectRatio,\n formats = [`auto`, `webp`],\n } = args\n formats = formats.map(format => format.toLowerCase() as ImageFormat)\n layout = camelCase(layout) as Layout\n\n if (width && height) {\n return { ...args, formats, layout, aspectRatio: width / height }\n }\n if (sourceMetadata.width && sourceMetadata.height && !aspectRatio) {\n aspectRatio = sourceMetadata.width / sourceMetadata.height\n }\n\n if (layout === `fullWidth`) {\n width = width || sourceMetadata.width || breakpoints[breakpoints.length - 1]\n height = height || Math.round(width / (aspectRatio || DEFAULT_ASPECT_RATIO))\n } else {\n if (!width) {\n if (height && aspectRatio) {\n width = height * aspectRatio\n } else if (sourceMetadata.width) {\n width = sourceMetadata.width\n } else if (height) {\n width = Math.round(height / DEFAULT_ASPECT_RATIO)\n } else {\n width = DEFAULT_FIXED_WIDTH\n }\n }\n\n if (aspectRatio && !height) {\n height = Math.round(width / aspectRatio)\n } else if (!aspectRatio) {\n aspectRatio = width / height\n }\n }\n return { ...args, width, height, aspectRatio, layout, formats }\n}\n\n/**\n * Use this for getting an image for the blurred placeholder. This ensures the\n * aspect ratio and crop match the main image\n */\nexport function getLowResolutionImageURL(\n args: IGatsbyImageHelperArgs,\n width = 20\n): string {\n args = setDefaultDimensions(args)\n const { generateImageSource, filename, aspectRatio } = args\n return generateImageSource(\n filename,\n width,\n Math.round(width / aspectRatio),\n args.sourceMetadata.format || `jpg`,\n args.fit,\n args.options\n )?.src\n}\n\nexport function generateImageData(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageData {\n args = setDefaultDimensions(args)\n\n let {\n pluginName,\n sourceMetadata,\n generateImageSource,\n layout,\n fit,\n options,\n width,\n height,\n filename,\n reporter = { warn },\n backgroundColor,\n placeholderURL,\n } = args\n\n if (!pluginName) {\n reporter.warn(\n `[gatsby-plugin-image] \"generateImageData\" was not passed a plugin name`\n )\n }\n\n if (typeof generateImageSource !== `function`) {\n throw new Error(`generateImageSource must be a function`)\n }\n\n if (!sourceMetadata || (!sourceMetadata.width && !sourceMetadata.height)) {\n // No metadata means we let the CDN handle max size etc, aspect ratio etc\n sourceMetadata = {\n width,\n height,\n format: sourceMetadata?.format || formatFromFilename(filename) || `auto`,\n }\n } else if (!sourceMetadata.format) {\n sourceMetadata.format = formatFromFilename(filename)\n }\n\n const formats = new Set(args.formats)\n\n if (formats.size === 0 || formats.has(`auto`) || formats.has(``)) {\n formats.delete(`auto`)\n formats.delete(``)\n formats.add(sourceMetadata.format)\n }\n\n if (formats.has(`jpg`) && formats.has(`png`)) {\n reporter.warn(\n `[${pluginName}] Specifying both 'jpg' and 'png' formats is not supported. Using 'auto' instead`\n )\n if (sourceMetadata.format === `jpg`) {\n formats.delete(`png`)\n } else {\n formats.delete(`jpg`)\n }\n }\n\n const imageSizes = calculateImageSizes({ ...args, sourceMetadata })\n\n const result: IGatsbyImageData[\"images\"] = {\n sources: [],\n }\n\n let sizes = args.sizes\n if (!sizes) {\n sizes = getSizes(imageSizes.presentationWidth, layout)\n }\n\n formats.forEach(format => {\n const images = imageSizes.sizes\n .map(size => {\n const imageSrc = generateImageSource(\n filename,\n size,\n Math.round(size / imageSizes.aspectRatio),\n format,\n fit,\n options\n )\n if (\n !imageSrc?.width ||\n !imageSrc.height ||\n !imageSrc.src ||\n !imageSrc.format\n ) {\n reporter.warn(\n `[${pluginName}] The resolver for image ${filename} returned an invalid value.`\n )\n return undefined\n }\n return imageSrc\n })\n .filter(Boolean)\n\n if (format === `jpg` || format === `png` || format === `auto`) {\n const unscaled =\n images.find(img => img.width === imageSizes.unscaledWidth) || images[0]\n\n if (unscaled) {\n result.fallback = {\n src: unscaled.src,\n srcSet: getSrcSet(images),\n sizes,\n }\n }\n } else {\n result.sources?.push({\n srcSet: getSrcSet(images),\n sizes,\n type: `image/${format}`,\n })\n }\n })\n\n const imageProps: Partial = {\n images: result,\n layout,\n backgroundColor,\n }\n\n if (placeholderURL) {\n imageProps.placeholder = { fallback: placeholderURL }\n }\n\n switch (layout) {\n case `fixed`:\n imageProps.width = imageSizes.presentationWidth\n imageProps.height = imageSizes.presentationHeight\n break\n\n case `fullWidth`:\n imageProps.width = 1\n imageProps.height = 1 / imageSizes.aspectRatio\n break\n\n case `constrained`:\n imageProps.width = args.width || imageSizes.presentationWidth || 1\n imageProps.height = (imageProps.width || 1) / imageSizes.aspectRatio\n }\n\n return imageProps as IGatsbyImageData\n}\n\nconst dedupeAndSortDensities = (values: Array): Array =>\n Array.from(new Set([1, ...values])).sort(sortNumeric)\n\nexport function calculateImageSizes(args: IImageSizeArgs): IImageSizes {\n const {\n width,\n height,\n filename,\n layout = `constrained`,\n sourceMetadata: imgDimensions,\n reporter = { warn },\n breakpoints = DEFAULT_BREAKPOINTS,\n } = args\n\n // check that all dimensions provided are positive\n const userDimensions = { width, height }\n const erroneousUserDimensions = Object.entries(userDimensions).filter(\n ([_, size]) => typeof size === `number` && size < 1\n )\n if (erroneousUserDimensions.length) {\n throw new Error(\n `Specified dimensions for images must be positive numbers (> 0). Problem dimensions you have are ${erroneousUserDimensions\n .map(dim => dim.join(`: `))\n .join(`, `)}`\n )\n }\n\n if (layout === `fixed`) {\n return fixedImageSizes(args)\n } else if (layout === `constrained`) {\n return responsiveImageSizes(args)\n } else if (layout === `fullWidth`) {\n return responsiveImageSizes({ breakpoints, ...args })\n } else {\n reporter.warn(\n `No valid layout was provided for the image at ${filename}. Valid image layouts are fixed, fullWidth, and constrained. Found ${layout}`\n )\n return {\n sizes: [imgDimensions.width],\n presentationWidth: imgDimensions.width,\n presentationHeight: imgDimensions.height,\n aspectRatio: imgDimensions.width / imgDimensions.height,\n unscaledWidth: imgDimensions.width,\n }\n }\n}\nexport function fixedImageSizes({\n filename,\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n reporter = { warn },\n}: IImageSizeArgs): IImageSizes {\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n if (!width) {\n if (!height) {\n width = DEFAULT_FIXED_WIDTH\n } else {\n width = Math.round(height * aspectRatio)\n }\n } else if (!height) {\n height = Math.round(width / aspectRatio)\n }\n\n const originalWidth = width // will use this for presentationWidth, don't want to lose it\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n\n // If the image is smaller than requested, warn the user that it's being processed as such\n // print out this message with the necessary information before we overwrite it for sizing\n if (isTopSizeOverriden) {\n const fixedDimension = imgDimensions.width < width ? `width` : `height`\n reporter.warn(`\nThe requested ${fixedDimension} \"${\n fixedDimension === `width` ? width : height\n }px\" for the image ${filename} was larger than the actual image ${fixedDimension} of ${\n imgDimensions[fixedDimension]\n }px. If possible, replace the current image with a larger one.`)\n\n if (fixedDimension === `width`) {\n width = imgDimensions.width\n height = Math.round(width / aspectRatio)\n } else {\n height = imgDimensions.height\n width = height * aspectRatio\n }\n }\n\n const sizes = densities\n .filter(size => size >= 1) // remove smaller densities because fixed images don't need them\n .map(density => Math.round(density * (width as number)))\n .filter(size => size <= imgDimensions.width)\n\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function responsiveImageSizes({\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n breakpoints,\n layout,\n}: IImageSizeArgs): IImageSizes {\n let sizes\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n // Case 1: width of height were passed in, make sure it isn't larger than the actual image\n width = width && Math.min(width, imgDimensions.width)\n height = height && Math.min(height, imgDimensions.height)\n\n // Case 2: neither width or height were passed in, use default size\n if (!width && !height) {\n width = Math.min(DEFAULT_FLUID_WIDTH, imgDimensions.width)\n height = width / aspectRatio\n }\n\n // if it still hasn't been found, calculate width from the derived height.\n // TS isn't smart enough to realise the type for height has been narrowed here\n if (!width) {\n width = (height as number) * aspectRatio\n }\n\n const originalWidth = width\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n if (isTopSizeOverriden) {\n width = imgDimensions.width\n height = imgDimensions.height\n }\n\n width = Math.round(width)\n\n if (breakpoints?.length > 0) {\n sizes = breakpoints.filter(size => size <= imgDimensions.width)\n\n // If a larger breakpoint has been filtered-out, add the actual image width instead\n if (\n sizes.length < breakpoints.length &&\n !sizes.includes(imgDimensions.width)\n ) {\n sizes.push(imgDimensions.width)\n }\n } else {\n sizes = densities.map(density => Math.round(density * (width as number)))\n sizes = sizes.filter(size => size <= imgDimensions.width)\n }\n\n // ensure that the size passed in is included in the final output\n if (layout === `constrained` && !sizes.includes(width)) {\n sizes.push(width)\n }\n sizes = sizes.sort(sortNumeric)\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function getDimensionsAndAspectRatio(\n dimensions,\n options\n): { width: number; height: number; aspectRatio: number } {\n // Calculate the eventual width/height of the image.\n const imageAspectRatio = dimensions.width / dimensions.height\n\n let width = options.width\n let height = options.height\n\n switch (options.fit) {\n case `fill`: {\n width = options.width ? options.width : dimensions.width\n height = options.height ? options.height : dimensions.height\n break\n }\n case `inside`: {\n const widthOption = options.width\n ? options.width\n : Number.MAX_SAFE_INTEGER\n const heightOption = options.height\n ? options.height\n : Number.MAX_SAFE_INTEGER\n\n width = Math.min(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.min(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n case `outside`: {\n const widthOption = options.width ? options.width : 0\n const heightOption = options.height ? options.height : 0\n\n width = Math.max(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.max(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n\n default: {\n if (options.width && !options.height) {\n width = options.width\n height = Math.round(options.width / imageAspectRatio)\n }\n\n if (options.height && !options.width) {\n width = Math.round(options.height * imageAspectRatio)\n height = options.height\n }\n }\n }\n\n return {\n width,\n height,\n aspectRatio: width / height,\n }\n}\n","/* global GATSBY___IMAGE */\nimport { generateImageData, EVERY_BREAKPOINT } from \"../image-utils\"\nimport type { CSSProperties, HTMLAttributes, ImgHTMLAttributes } from \"react\"\nimport type { Node } from \"gatsby\"\nimport type { PlaceholderProps } from \"./placeholder\"\nimport type { MainImageProps } from \"./main-image\"\nimport type { IGatsbyImageData } from \"./gatsby-image.browser\"\nimport type {\n IGatsbyImageHelperArgs,\n Layout,\n IImage,\n ImageFormat,\n} from \"../image-utils\"\n\n// Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\nexport const hasNativeLazyLoadSupport = (): boolean =>\n typeof HTMLImageElement !== `undefined` &&\n `loading` in HTMLImageElement.prototype\n\nexport function gatsbyImageIsInstalled(): boolean {\n return typeof GATSBY___IMAGE !== `undefined` && GATSBY___IMAGE\n}\n\nexport type IGatsbyImageDataParent = T & {\n gatsbyImageData: IGatsbyImageData\n}\nexport type IGatsbyImageParent = T & {\n gatsbyImage: IGatsbyImageData\n}\nexport type FileNode = Partial & {\n childImageSharp?: IGatsbyImageDataParent>\n}\n\nconst isGatsbyImageData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageData | any\n): node is IGatsbyImageData =>\n // 🦆 check for a deep prop to be sure this is a valid gatsbyImageData object\n Boolean(node?.images?.fallback?.src)\n\nconst isGatsbyImageDataParent = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageDataParent | any\n): node is IGatsbyImageDataParent => Boolean(node?.gatsbyImageData)\n\nconst isGatsbyImageParent = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageParent | any\n): node is IGatsbyImageParent => Boolean(node?.gatsbyImage)\n\nexport type ImageDataLike =\n | FileNode\n | IGatsbyImageDataParent\n | IGatsbyImageParent\n | IGatsbyImageData\n\nexport const getImage = (\n node: ImageDataLike | null\n): IGatsbyImageData | undefined => {\n // This checks both for gatsbyImageData and gatsbyImage\n if (isGatsbyImageData(node)) {\n return node\n }\n // gatsbyImageData GraphQL field\n if (isGatsbyImageDataParent(node)) {\n return node.gatsbyImageData\n }\n // gatsbyImage GraphQL field for Gatsby's Image CDN service\n if (isGatsbyImageParent(node)) {\n return node.gatsbyImage\n }\n return node?.childImageSharp?.gatsbyImageData\n}\n\nexport const getSrc = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.src\n\nexport const getSrcSet = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.srcSet\n\nexport function getWrapperProps(\n width: number,\n height: number,\n layout: Layout\n): Pick, \"className\" | \"style\"> & {\n \"data-gatsby-image-wrapper\": string\n} {\n const wrapperStyle: CSSProperties = {}\n\n let className = `gatsby-image-wrapper`\n\n // If the plugin isn't installed we need to apply the styles inline\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.position = `relative`\n wrapperStyle.overflow = `hidden`\n }\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n } else if (layout === `constrained`) {\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.display = `inline-block`\n wrapperStyle.verticalAlign = `top`\n }\n className = `gatsby-image-wrapper gatsby-image-wrapper-constrained`\n }\n\n return {\n className,\n \"data-gatsby-image-wrapper\": ``,\n style: wrapperStyle,\n }\n}\n\nexport interface IUrlBuilderArgs {\n width: number\n height: number\n baseUrl: string\n format: ImageFormat\n options: OptionsType\n}\nexport interface IGetImageDataArgs> {\n baseUrl: string\n /**\n * For constrained and fixed images, the size of the image element\n */\n width?: number\n height?: number\n /**\n * If available, pass the source image width and height\n */\n sourceWidth?: number\n sourceHeight?: number\n /**\n * If only one dimension is passed, then this will be used to calculate the other.\n */\n aspectRatio?: number\n layout?: Layout\n /**\n * Returns a URL based on the passed arguments. Should be a pure function\n */\n urlBuilder: (args: IUrlBuilderArgs) => string\n\n /**\n * Should be a data URI\n */\n placeholderURL?: string\n backgroundColor?: string\n /**\n * Used in error messages etc\n */\n pluginName?: string\n\n /**\n * If you do not support auto-format, pass an array of image types here\n */\n formats?: Array\n\n breakpoints?: Array\n\n /**\n * Passed to the urlBuilder function\n */\n options?: OptionsType\n}\n\n/**\n * Use this hook to generate gatsby-plugin-image data in the browser.\n */\nexport function getImageData({\n baseUrl,\n urlBuilder,\n sourceWidth,\n sourceHeight,\n pluginName = `getImageData`,\n formats = [`auto`],\n breakpoints,\n options,\n ...props\n}: IGetImageDataArgs): IGatsbyImageData {\n if (\n !breakpoints?.length &&\n (props.layout === `fullWidth` || (props.layout as string) === `FULL_WIDTH`)\n ) {\n breakpoints = EVERY_BREAKPOINT\n }\n const generateImageSource = (\n baseUrl: string,\n width: number,\n height?: number,\n format?: ImageFormat\n ): IImage => {\n return {\n width,\n height,\n format,\n src: urlBuilder({ baseUrl, width, height, options, format }),\n }\n }\n\n const sourceMetadata: IGatsbyImageHelperArgs[\"sourceMetadata\"] = {\n width: sourceWidth,\n height: sourceHeight,\n format: `auto`,\n }\n\n const args: IGatsbyImageHelperArgs = {\n ...props,\n pluginName,\n generateImageSource,\n filename: baseUrl,\n formats,\n breakpoints,\n sourceMetadata,\n }\n return generateImageData(args)\n}\n\nexport function getMainProps(\n isLoading: boolean,\n isLoaded: boolean,\n images: IGatsbyImageData[\"images\"],\n loading?: \"eager\" | \"lazy\",\n style: CSSProperties = {}\n): Partial {\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n transform: `translateZ(0)`,\n transition: `opacity 250ms linear`,\n width: `100%`,\n willChange: `opacity`,\n ...style,\n }\n }\n\n const result = {\n ...images,\n loading,\n shouldLoad: isLoading,\n \"data-main-image\": ``,\n style: {\n ...style,\n opacity: isLoaded ? 1 : 0,\n },\n }\n\n return result\n}\n\nexport type PlaceholderImageAttrs = ImgHTMLAttributes &\n Pick & {\n \"data-placeholder-image\"?: string\n }\n\nexport function getPlaceholderProps(\n placeholder: PlaceholderImageAttrs | undefined,\n isLoaded: boolean,\n layout: Layout,\n width?: number,\n height?: number,\n backgroundColor?: string,\n objectFit?: CSSProperties[\"objectFit\"],\n objectPosition?: CSSProperties[\"objectPosition\"]\n): PlaceholderImageAttrs {\n const wrapperStyle: CSSProperties = {}\n\n if (backgroundColor) {\n wrapperStyle.backgroundColor = backgroundColor\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n wrapperStyle.backgroundColor = backgroundColor\n wrapperStyle.position = `relative`\n } else if (layout === `constrained`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n } else if (layout === `fullWidth`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n }\n }\n\n if (objectFit) {\n wrapperStyle.objectFit = objectFit\n }\n\n if (objectPosition) {\n wrapperStyle.objectPosition = objectPosition\n }\n const result: PlaceholderImageAttrs = {\n ...placeholder,\n \"aria-hidden\": true,\n \"data-placeholder-image\": ``,\n style: {\n opacity: isLoaded ? 0 : 1,\n transition: `opacity 500ms linear`,\n ...wrapperStyle,\n },\n }\n\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n result.style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n width: `100%`,\n }\n }\n\n return result\n}\n\nexport interface IArtDirectedImage {\n media: string\n image: IGatsbyImageData\n}\n\n/**\n * Generate a Gatsby image data object with multiple, art-directed images that display at different\n * resolutions.\n *\n * @param defaultImage The image displayed when no media query matches.\n * It is also used for all other settings applied to the image, such as width, height and layout.\n * You should pass a className to the component with media queries to adjust the size of the container,\n * as this cannot be adjusted automatically.\n * @param artDirected Array of objects which each contains a `media` string which is a media query\n * such as `(min-width: 320px)`, and the image object to use when that query matches.\n */\nexport function withArtDirection(\n defaultImage: IGatsbyImageData,\n artDirected: Array\n): IGatsbyImageData {\n const { images, placeholder, ...props } = defaultImage\n const output: IGatsbyImageData = {\n ...props,\n images: {\n ...images,\n sources: [],\n },\n placeholder: placeholder && {\n ...placeholder,\n sources: [],\n },\n }\n\n artDirected.forEach(({ media, image }) => {\n if (!media) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(\n \"[gatsby-plugin-image] All art-directed images passed to must have a value set for `media`. Skipping.\"\n )\n }\n return\n }\n\n if (\n image.layout !== defaultImage.layout &&\n process.env.NODE_ENV === `development`\n ) {\n console.warn(\n `[gatsby-plugin-image] Mismatched image layout: expected \"${defaultImage.layout}\" but received \"${image.layout}\". All art-directed images use the same layout as the default image`\n )\n }\n\n output.images.sources.push(\n ...image.images.sources.map(source => {\n return { ...source, media }\n }),\n {\n media,\n srcSet: image.images.fallback.srcSet,\n }\n )\n\n if (!output.placeholder) {\n return\n }\n\n output.placeholder.sources.push({\n media,\n srcSet: image.placeholder.fallback,\n })\n })\n output.images.sources.push(...images.sources)\n if (placeholder?.sources) {\n output.placeholder?.sources.push(...placeholder.sources)\n }\n return output\n}\n","import React, { Fragment, FunctionComponent, PropsWithChildren } from \"react\"\nimport terserMacro from \"../../macros/terser.macro\"\nimport { Layout } from \"../image-utils\"\n\nexport interface ILayoutWrapperProps {\n layout: Layout\n width: number\n height: number\n}\n\nconst NativeScriptLoading: FunctionComponent = () => (\n \n)\n\nexport function getSizer(\n layout: Layout,\n width: number,\n height: number\n): string {\n let sizer = ``\n if (layout === `fullWidth`) {\n sizer = `
`\n }\n\n if (layout === `constrained`) {\n sizer = `
\"\"
`\n }\n\n return sizer\n}\n\nconst Sizer: FunctionComponent = function Sizer({\n layout,\n width,\n height,\n}) {\n if (layout === `fullWidth`) {\n return (\n
\n )\n }\n\n if (layout === `constrained`) {\n return (\n
\n \n
\n )\n }\n\n return null\n}\n\nexport const LayoutWrapper: FunctionComponent<\n PropsWithChildren\n> = function LayoutWrapper({ children, ...props }) {\n return (\n \n \n {children}\n\n {SERVER ? : null}\n \n )\n}\n","import React, { FunctionComponent, ImgHTMLAttributes } from \"react\"\nimport * as PropTypes from \"prop-types\"\n\nexport interface IResponsiveImageProps {\n sizes?: string\n srcSet: string\n}\n\nexport type SourceProps = IResponsiveImageProps &\n (\n | {\n media: string\n type?: string\n }\n | {\n media?: string\n type: string\n }\n )\n\ntype FallbackProps = { src: string } & Partial\n\ntype ImageProps = ImgHTMLAttributes & {\n src: string\n alt: string\n shouldLoad: boolean\n}\n\nexport type PictureProps = ImgHTMLAttributes & {\n fallback?: FallbackProps\n sources?: Array\n alt: string\n shouldLoad?: boolean\n}\n\nconst Image: FunctionComponent = function Image({\n src,\n srcSet,\n loading,\n alt = ``,\n shouldLoad,\n ...props\n}) {\n return (\n \n )\n}\n\nexport const Picture: React.FC = function Picture({\n fallback,\n sources = [],\n shouldLoad = true,\n ...props\n}) {\n const sizes = props.sizes || fallback?.sizes\n const fallbackImage = (\n \n )\n\n if (!sources.length) {\n return fallbackImage\n }\n\n return (\n \n {sources.map(({ media, srcSet, type }) => (\n \n ))}\n {fallbackImage}\n \n )\n}\n\nImage.propTypes = {\n src: PropTypes.string.isRequired,\n alt: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string,\n shouldLoad: PropTypes.bool,\n}\n\nPicture.displayName = `Picture`\nPicture.propTypes = {\n alt: PropTypes.string.isRequired,\n shouldLoad: PropTypes.bool,\n fallback: PropTypes.exact({\n src: PropTypes.string.isRequired,\n srcSet: PropTypes.string,\n sizes: PropTypes.string,\n }),\n sources: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.exact({\n media: PropTypes.string.isRequired,\n type: PropTypes.string,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n PropTypes.exact({\n media: PropTypes.string,\n type: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n ])\n ),\n}\n","import React, { FunctionComponent, ImgHTMLAttributes } from \"react\"\nimport * as PropTypes from \"prop-types\"\nimport { Picture, SourceProps } from \"./picture\"\n\nexport type PlaceholderProps = ImgHTMLAttributes & {\n fallback?: string\n sources?: Array\n}\n\nexport const Placeholder: FunctionComponent =\n function Placeholder({ fallback, ...props }) {\n if (fallback) {\n return (\n \n )\n } else {\n return
\n }\n }\n\nPlaceholder.displayName = `Placeholder`\nPlaceholder.propTypes = {\n fallback: PropTypes.string,\n sources: Picture.propTypes?.sources,\n alt: function (props, propName, componentName): Error | null {\n if (!props[propName]) {\n return null\n }\n\n return new Error(\n `Invalid prop \\`${propName}\\` supplied to \\`${componentName}\\`. Validation failed.`\n )\n },\n}\n","import React from \"react\"\nimport { Picture, PictureProps } from \"./picture\"\n\nexport type MainImageProps = PictureProps\n\nexport const MainImage: React.FC = function MainImage(props) {\n return (\n <>\n \n \n \n )\n}\n\nMainImage.displayName = `MainImage`\nMainImage.propTypes = Picture.propTypes\n","import React from \"react\"\nimport { getWrapperProps, getMainProps, getPlaceholderProps } from \"./hooks\"\nimport { Placeholder } from \"./placeholder\"\nimport { MainImage, MainImageProps } from \"./main-image\"\nimport { LayoutWrapper } from \"./layout-wrapper\"\nimport PropTypes from \"prop-types\"\nimport type { FunctionComponent, WeakValidationMap } from \"react\"\nimport type { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\n\nconst removeNewLines = (str: string): string => str.replace(/\\n/g, ``)\n\nexport const GatsbyImage: FunctionComponent =\n function GatsbyImage({\n as = `div`,\n className,\n class: preactClass,\n style,\n image,\n loading = `lazy`,\n imgClassName,\n imgStyle,\n backgroundColor,\n objectFit,\n objectPosition,\n ...props\n }) {\n if (!image) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n return null\n }\n\n if (preactClass) {\n className = preactClass\n }\n\n imgStyle = {\n objectFit,\n objectPosition,\n backgroundColor,\n ...imgStyle,\n }\n\n const {\n width,\n height,\n layout,\n images,\n placeholder,\n backgroundColor: placeholderBackgroundColor,\n } = image\n\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n\n const cleanedImages: IGatsbyImageData[\"images\"] = {\n fallback: undefined,\n sources: [],\n }\n if (images.fallback) {\n cleanedImages.fallback = {\n ...images.fallback,\n srcSet: images.fallback.srcSet\n ? removeNewLines(images.fallback.srcSet)\n : undefined,\n }\n }\n\n if (images.sources) {\n cleanedImages.sources = images.sources.map(source => {\n return {\n ...source,\n srcSet: removeNewLines(source.srcSet),\n }\n })\n }\n\n return React.createElement(\n as,\n {\n ...wrapperProps,\n style: {\n ...wStyle,\n ...style,\n backgroundColor,\n },\n className: `${wClass}${className ? ` ${className}` : ``}`,\n },\n \n \n\n )}\n // When eager is set we want to start the isLoading state on true (we want to load the img without react)\n {...getMainProps(\n loading === `eager`,\n false,\n cleanedImages,\n loading,\n imgStyle\n )}\n />\n \n )\n }\n\nexport const altValidator: PropTypes.Validator = (\n props: GatsbyImageProps,\n propName,\n componentName,\n ...rest\n): Error | undefined => {\n if (!props.alt && props.alt !== ``) {\n return new Error(\n `The \"alt\" prop is required in ${componentName}. If the image is purely presentational then pass an empty string: e.g. alt=\"\". Learn more: https://a11y-style-guide.com/style-guide/section-media.html`\n )\n }\n\n return PropTypes.string(props, propName, componentName, ...rest)\n}\n\nexport const propTypes = {\n image: PropTypes.object.isRequired,\n alt: altValidator,\n} as WeakValidationMap\n","import {\n createElement,\n memo,\n useMemo,\n useEffect,\n useLayoutEffect,\n useRef,\n} from \"react\"\nimport {\n getWrapperProps,\n gatsbyImageIsInstalled,\n hasNativeLazyLoadSupport,\n} from \"./hooks\"\nimport { getSizer } from \"./layout-wrapper\"\nimport { propTypes } from \"./gatsby-image.server\"\nimport type {\n FC,\n ElementType,\n FunctionComponent,\n ImgHTMLAttributes,\n CSSProperties,\n ReactEventHandler,\n} from \"react\"\nimport type { renderImageToString } from \"./lazy-hydrate\"\nimport type { PlaceholderProps } from \"./placeholder\"\nimport type { MainImageProps } from \"./main-image\"\nimport type { Layout } from \"../image-utils\"\n\nconst imageCache = new Set()\nlet renderImageToStringPromise\nlet renderImage: typeof renderImageToString | undefined\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport interface GatsbyImageProps\n extends Omit<\n ImgHTMLAttributes,\n \"placeholder\" | \"onLoad\" | \"src\" | \"srcSet\" | \"width\" | \"height\"\n > {\n alt: string\n as?: ElementType\n className?: string\n class?: string\n imgClassName?: string\n image: IGatsbyImageData\n imgStyle?: CSSProperties\n backgroundColor?: string\n objectFit?: CSSProperties[\"objectFit\"]\n objectPosition?: CSSProperties[\"objectPosition\"]\n onLoad?: (props: { wasCached: boolean }) => void\n onError?: ReactEventHandler\n onStartLoad?: (props: { wasCached: boolean }) => void\n}\n\nexport interface IGatsbyImageData {\n layout: Layout\n width: number\n height: number\n backgroundColor?: string\n images: Pick\n placeholder?: Pick\n}\n\nconst GatsbyImageHydrator: FC = function GatsbyImageHydrator({\n as = `div`,\n image,\n style,\n backgroundColor,\n className,\n class: preactClass,\n onStartLoad,\n onLoad,\n onError,\n ...props\n}) {\n const { width, height, layout } = image\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n const root = useRef()\n const cacheKey = useMemo(() => JSON.stringify(image.images), [image.images])\n\n // Preact uses class instead of className so we need to check for both\n if (preactClass) {\n className = preactClass\n }\n\n const sizer = getSizer(layout, width, height)\n\n useEffect(() => {\n if (!renderImageToStringPromise) {\n renderImageToStringPromise = import(`./lazy-hydrate`).then(\n ({ renderImageToString, swapPlaceholderImage }) => {\n renderImage = renderImageToString\n\n return {\n renderImageToString,\n swapPlaceholderImage,\n }\n }\n )\n }\n\n // The plugin image component is a bit special where if it's server-side rendered, we add extra script tags to support lazy-loading without\n // In this case we stop hydration but fire the correct events.\n const ssrImage = root.current.querySelector(\n `[data-gatsby-image-ssr]`\n ) as HTMLImageElement\n if (ssrImage && hasNativeLazyLoadSupport()) {\n if (ssrImage.complete) {\n // Trigger onStartload and onLoad events\n onStartLoad?.({\n wasCached: true,\n })\n onLoad?.({\n wasCached: true,\n })\n\n // remove ssr key for state updates but add delay to not fight with native code snippt of gatsby-ssr\n setTimeout(() => {\n ssrImage.removeAttribute(`data-gatsby-image-ssr`)\n }, 0)\n } else {\n onStartLoad?.({\n wasCached: true,\n })\n\n ssrImage.addEventListener(`load`, function onLoadListener() {\n ssrImage.removeEventListener(`load`, onLoadListener)\n\n onLoad?.({\n wasCached: true,\n })\n // remove ssr key for state updates but add delay to not fight with native code snippt of gatsby-ssr\n setTimeout(() => {\n ssrImage.removeAttribute(`data-gatsby-image-ssr`)\n }, 0)\n })\n }\n\n imageCache.add(cacheKey)\n\n return\n }\n\n if (renderImage && imageCache.has(cacheKey)) {\n return\n }\n\n let animationFrame\n let cleanupCallback\n renderImageToStringPromise.then(\n ({ renderImageToString, swapPlaceholderImage }) => {\n if (!root.current) {\n return\n }\n\n root.current.innerHTML = renderImageToString({\n isLoading: true,\n isLoaded: imageCache.has(cacheKey),\n image,\n ...props,\n })\n\n if (!imageCache.has(cacheKey)) {\n animationFrame = requestAnimationFrame(() => {\n if (root.current) {\n cleanupCallback = swapPlaceholderImage(\n root.current,\n cacheKey,\n imageCache,\n style,\n onStartLoad,\n onLoad,\n onError\n )\n }\n })\n }\n }\n )\n\n // eslint-disable-next-line consistent-return\n return (): void => {\n if (animationFrame) {\n cancelAnimationFrame(animationFrame)\n }\n if (cleanupCallback) {\n cleanupCallback()\n }\n }\n }, [image])\n\n // useLayoutEffect is ran before React commits to the DOM. This allows us to make sure our HTML is using our cached image version\n useLayoutEffect(() => {\n if (imageCache.has(cacheKey) && renderImage) {\n root.current.innerHTML = renderImage({\n isLoading: imageCache.has(cacheKey),\n isLoaded: imageCache.has(cacheKey),\n image,\n ...props,\n })\n\n // Trigger onStartload and onLoad events\n onStartLoad?.({\n wasCached: true,\n })\n onLoad?.({\n wasCached: true,\n })\n }\n }, [image])\n\n // By keeping all props equal React will keep the component in the DOM\n return createElement(as, {\n ...wrapperProps,\n style: {\n ...wStyle,\n ...style,\n backgroundColor,\n },\n className: `${wClass}${className ? ` ${className}` : ``}`,\n ref: root,\n dangerouslySetInnerHTML: {\n __html: sizer,\n },\n suppressHydrationWarning: true,\n })\n}\n\nexport const GatsbyImage: FunctionComponent = memo(\n function GatsbyImage(props) {\n if (!props.image) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n }\n\n return null\n }\n\n if (!gatsbyImageIsInstalled() && process.env.NODE_ENV === `development`) {\n console.warn(\n `[gatsby-plugin-image] You're missing out on some cool performance features. Please add \"gatsby-plugin-image\" to your gatsby-config.js`\n )\n }\n\n return createElement(GatsbyImageHydrator, props)\n }\n)\n\nGatsbyImage.propTypes = propTypes\nGatsbyImage.displayName = `GatsbyImage`\n","import React, { FunctionComponent, ReactElement } from \"react\"\nimport {\n altValidator,\n GatsbyImage as GatsbyImageServer,\n} from \"./gatsby-image.server\"\nimport { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\nimport PropTypes from \"prop-types\"\nimport { ISharpGatsbyImageArgs } from \"../image-utils\"\n\nexport interface IStaticImageProps\n extends Omit,\n Omit {\n src: string\n filename?: string\n}\n\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nexport function _getStaticImage(\n GatsbyImage: FunctionComponent\n): React.FC {\n return function StaticImage({\n src,\n __imageData: imageData,\n __error,\n // We extract these because they're not meant to be passed-down to GatsbyImage\n /* eslint-disable @typescript-eslint/no-unused-vars */\n width,\n height,\n aspectRatio,\n tracedSVGOptions,\n placeholder,\n formats,\n quality,\n transformOptions,\n jpgOptions,\n pngOptions,\n webpOptions,\n avifOptions,\n blurredOptions,\n breakpoints,\n outputPixelDensities,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...props\n }): ReactElement {\n if (__error) {\n console.warn(__error)\n }\n\n if (imageData) {\n return \n }\n console.warn(`Image not loaded`, src)\n if (!__error && process.env.NODE_ENV === `development`) {\n console.warn(\n `Please ensure that \"gatsby-plugin-image\" is included in the plugins array in gatsby-config.js, and that your version of gatsby is at least 2.24.78`\n )\n }\n return null\n }\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageServer)\n\nconst checkDimensionProps: PropTypes.Validator = (\n props: IStaticImageProps & IPrivateProps,\n propName: keyof IStaticImageProps & IPrivateProps,\n ...rest\n) => {\n if (\n props.layout === `fullWidth` &&\n (propName === `width` || propName === `height`) &&\n props[propName]\n ) {\n return new Error(\n `\"${propName}\" ${props[propName]} may not be passed when layout is fullWidth.`\n )\n }\n return PropTypes.number(props, propName, ...rest)\n}\n\nconst validLayouts = new Set([`fixed`, `fullWidth`, `constrained`])\n\nexport const propTypes = {\n src: PropTypes.string.isRequired,\n alt: altValidator,\n width: checkDimensionProps,\n height: checkDimensionProps,\n sizes: PropTypes.string,\n layout: (props: IStaticImageProps & IPrivateProps): Error | undefined => {\n if (props.layout === undefined) {\n return undefined\n }\n if (validLayouts.has(props.layout)) {\n return undefined\n }\n\n return new Error(\n `Invalid value ${props.layout}\" provided for prop \"layout\". Defaulting to \"constrained\". Valid values are \"fixed\", \"fullWidth\" or \"constrained\".`\n )\n },\n}\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","import {\n GatsbyImage as GatsbyImageBrowser,\n IGatsbyImageData,\n} from \"./gatsby-image.browser\"\nimport React from \"react\"\nimport {\n _getStaticImage,\n propTypes,\n IStaticImageProps,\n} from \"./static-image.server\"\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageBrowser)\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","'use strict';\n\nconst UPPERCASE = /[\\p{Lu}]/u;\nconst LOWERCASE = /[\\p{Ll}]/u;\nconst LEADING_CAPITAL = /^[\\p{Lu}](?![\\p{Lu}])/gu;\nconst IDENTIFIER = /([\\p{Alpha}\\p{N}_]|$)/u;\nconst SEPARATORS = /[_.\\- ]+/;\n\nconst LEADING_SEPARATORS = new RegExp('^' + SEPARATORS.source);\nconst SEPARATORS_AND_IDENTIFIER = new RegExp(SEPARATORS.source + IDENTIFIER.source, 'gu');\nconst NUMBERS_AND_IDENTIFIER = new RegExp('\\\\d+' + IDENTIFIER.source, 'gu');\n\nconst preserveCamelCase = (string, toLowerCase, toUpperCase) => {\n\tlet isLastCharLower = false;\n\tlet isLastCharUpper = false;\n\tlet isLastLastCharUpper = false;\n\n\tfor (let i = 0; i < string.length; i++) {\n\t\tconst character = string[i];\n\n\t\tif (isLastCharLower && UPPERCASE.test(character)) {\n\t\t\tstring = string.slice(0, i) + '-' + string.slice(i);\n\t\t\tisLastCharLower = false;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = true;\n\t\t\ti++;\n\t\t} else if (isLastCharUpper && isLastLastCharUpper && LOWERCASE.test(character)) {\n\t\t\tstring = string.slice(0, i - 1) + '-' + string.slice(i - 1);\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = false;\n\t\t\tisLastCharLower = true;\n\t\t} else {\n\t\t\tisLastCharLower = toLowerCase(character) === character && toUpperCase(character) !== character;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = toUpperCase(character) === character && toLowerCase(character) !== character;\n\t\t}\n\t}\n\n\treturn string;\n};\n\nconst preserveConsecutiveUppercase = (input, toLowerCase) => {\n\tLEADING_CAPITAL.lastIndex = 0;\n\n\treturn input.replace(LEADING_CAPITAL, m1 => toLowerCase(m1));\n};\n\nconst postProcess = (input, toUpperCase) => {\n\tSEPARATORS_AND_IDENTIFIER.lastIndex = 0;\n\tNUMBERS_AND_IDENTIFIER.lastIndex = 0;\n\n\treturn input.replace(SEPARATORS_AND_IDENTIFIER, (_, identifier) => toUpperCase(identifier))\n\t\t.replace(NUMBERS_AND_IDENTIFIER, m => toUpperCase(m));\n};\n\nconst camelCase = (input, options) => {\n\tif (!(typeof input === 'string' || Array.isArray(input))) {\n\t\tthrow new TypeError('Expected the input to be `string | string[]`');\n\t}\n\n\toptions = {\n\t\tpascalCase: false,\n\t\tpreserveConsecutiveUppercase: false,\n\t\t...options\n\t};\n\n\tif (Array.isArray(input)) {\n\t\tinput = input.map(x => x.trim())\n\t\t\t.filter(x => x.length)\n\t\t\t.join('-');\n\t} else {\n\t\tinput = input.trim();\n\t}\n\n\tif (input.length === 0) {\n\t\treturn '';\n\t}\n\n\tconst toLowerCase = options.locale === false ?\n\t\tstring => string.toLowerCase() :\n\t\tstring => string.toLocaleLowerCase(options.locale);\n\tconst toUpperCase = options.locale === false ?\n\t\tstring => string.toUpperCase() :\n\t\tstring => string.toLocaleUpperCase(options.locale);\n\n\tif (input.length === 1) {\n\t\treturn options.pascalCase ? toUpperCase(input) : toLowerCase(input);\n\t}\n\n\tconst hasUpperCase = input !== toLowerCase(input);\n\n\tif (hasUpperCase) {\n\t\tinput = preserveCamelCase(input, toLowerCase, toUpperCase);\n\t}\n\n\tinput = input.replace(LEADING_SEPARATORS, '');\n\n\tif (options.preserveConsecutiveUppercase) {\n\t\tinput = preserveConsecutiveUppercase(input, toLowerCase);\n\t} else {\n\t\tinput = toLowerCase(input);\n\t}\n\n\tif (options.pascalCase) {\n\t\tinput = toUpperCase(input.charAt(0)) + input.slice(1);\n\t}\n\n\treturn postProcess(input, toUpperCase);\n};\n\nmodule.exports = camelCase;\n// TODO: Remove this for the next major release\nmodule.exports.default = camelCase;\n","import './InnerLink.scss';\n\nimport React from 'react';\nimport { Link, } from './Link';\n\n\n\nexport default function InnerLink({ children, to, text, }) {\n if (text)\n return (\n {text}\n );\n\n return (\n {children}\n );\n};\n"],"names":["W","hasNativeLazyLoadSupport","HTMLImageElement","prototype","z","e","t","a","i","s","width","height","className","style","P","h","loading","shouldLoad","opacity","A","r","n","o","l","backgroundColor","position","top","left","bottom","right","objectFit","objectPosition","d","transition","H","F","_ref5","layout","paddingTop","maxWidth","display","alt","role","src","G","children","u","V","B","U","srcSet","decoding","Y","fallback","sources","sizes","length","map","_ref6","media","type","key","X","propTypes","isRequired","displayName","J","Z","Error","K","Q","ee","te","replace","ae","_len","arguments","Array","_key","c","apply","concat","ie","image","se","re","ne","Set","oe","le","de","as","class","g","onStartLoad","p","onLoad","m","onError","f","w","y","b","v","E","k","S","M","N","$","JSON","stringify","images","I","then","_ref7","renderImageToString","swapPlaceholderImage","current","querySelector","complete","wasCached","setTimeout","removeAttribute","addEventListener","removeEventListener","add","has","_ref8","innerHTML","isLoading","isLoaded","requestAnimationFrame","cancelAnimationFrame","ref","dangerouslySetInnerHTML","__html","suppressHydrationWarning","ce","he","ue","__imageData","__error","console","warn","ge","imgClassName","imgStyle","placeholder","pe","_len2","_key2","me","fe","we","UPPERCASE","LOWERCASE","LEADING_CAPITAL","IDENTIFIER","SEPARATORS","LEADING_SEPARATORS","RegExp","source","SEPARATORS_AND_IDENTIFIER","NUMBERS_AND_IDENTIFIER","camelCase","input","options","isArray","TypeError","pascalCase","preserveConsecutiveUppercase","x","trim","filter","join","toLowerCase","locale","string","toLocaleLowerCase","toUpperCase","toLocaleUpperCase","preserveCamelCase","isLastCharLower","isLastCharUpper","isLastLastCharUpper","character","test","slice","lastIndex","m1","charAt","postProcess","_","identifier","module","exports","InnerLink","_ref","to","text","React","Link"],"sourceRoot":""} \ No newline at end of file diff --git a/_gatsby/slices/_gatsby-scripts-1.html b/_gatsby/slices/_gatsby-scripts-1.html index a50d0fe..72ed57f 100644 --- a/_gatsby/slices/_gatsby-scripts-1.html +++ b/_gatsby/slices/_gatsby-scripts-1.html @@ -2,6 +2,6 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/about/index.html b/about/index.html index 8fdd390..d03db55 100644 --- a/about/index.html +++ b/about/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/app-4e1d8fdb385a026c30df.js b/app-4e1d8fdb385a026c30df.js deleted file mode 100644 index 3c1836e..0000000 --- a/app-4e1d8fdb385a026c30df.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! For license information please see app-4e1d8fdb385a026c30df.js.LICENSE.txt */ -(self.webpackChunkivannikov_pro_website=self.webpackChunkivannikov_pro_website||[]).push([[524],{262:function(t,e,n){var r={"./en/404.json":669,"./en/about.json":4048,"./en/blog.json":395,"./en/curriculum-vitae.json":8416,"./en/footer.json":7184,"./en/header.json":9454,"./en/modal-get-in-touch.json":3173,"./en/portfolio.json":7797,"./en/privacy.json":5689,"./en/products-hotcoin-database.json":6210,"./en/products-notcoin-database.json":8680,"./en/products.json":1979,"./en/projects.json":1173,"./en/services.json":3183,"./en/terms.json":9218,"./en/translation.json":2206,"./ru/404.json":6915,"./ru/about.json":7598,"./ru/blog.json":6537,"./ru/curriculum-vitae.json":9654,"./ru/footer.json":9146,"./ru/header.json":1172,"./ru/modal-get-in-touch.json":8387,"./ru/portfolio.json":4167,"./ru/privacy.json":6115,"./ru/products-hotcoin-database.json":1416,"./ru/products-notcoin-database.json":8386,"./ru/products.json":9453,"./ru/projects.json":4179,"./ru/services.json":8981,"./ru/terms.json":4888,"./ru/translation.json":1512};function o(t){var e=i(t);return n(e)}function i(t){if(!n.o(r,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return r[t]}o.keys=function(){return Object.keys(r)},o.resolve=i,t.exports=o,o.id=262},6395:function(t,e){"use strict";e.T=void 0;const n=[".html",".json",".js",".map",".txt",".xml",".pdf"];e.T=(t,e="always")=>{if("/"===t)return t;const r=t.endsWith("/");return((t,e)=>{for(const n of t)if(e.endsWith(n))return!0;return!1})(n,t)?t:"always"===e?r?t:`${t}/`:"never"===e&&r?t.slice(0,-1):t}},7035:function(t,e,n){"use strict";e.RV=e.z_=void 0;var r=n(3215);e.z_=r.ScrollHandler;var o=n(3721);e.RV=o.useScrollRestoration},3215:function(t,e,n){"use strict";var r=n(4994);e.__esModule=!0,e.ScrollHandler=e.ScrollContext=void 0;var o=r(n(2475)),i=r(n(6221)),a=function(t,e){if(!e&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var n=u(e);if(n&&n.has(t))return n.get(t);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in t)if("default"!==i&&Object.prototype.hasOwnProperty.call(t,i)){var a=o?Object.getOwnPropertyDescriptor(t,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=t[i]}r.default=t,n&&n.set(t,r);return r}(n(6540)),s=r(n(5556)),c=n(4351);function u(t){if("function"!=typeof WeakMap)return null;var e=new WeakMap,n=new WeakMap;return(u=function(t){return t?n:e})(t)}var l=a.createContext(new c.SessionStorage);e.ScrollContext=l,l.displayName="GatsbyScrollContext";var f=function(t){function e(){for(var e,n=arguments.length,r=new Array(n),i=0;i{}},3309:function(t,e){"use strict";e.__esModule=!0,e.getForwards=function(t){return null==t?void 0:t.flatMap((t=>(null==t?void 0:t.forward)||[]))}},9300:function(t,e,n){"use strict";e.__esModule=!0,e.injectPartytownSnippet=function(t){if(!t.length)return;const e=document.querySelector("script[data-partytown]"),n=document.querySelector('iframe[src*="~partytown/partytown-sandbox-sw"]');e&&e.remove();n&&n.remove();const i=(0,o.getForwards)(t),a=document.createElement("script");a.dataset.partytown="",a.innerHTML=(0,r.partytownSnippet)({forward:i}),document.head.appendChild(a)};var r=n(4656),o=n(3309)},6877:function(t,e,n){e.components={"component---src-pages-404-jsx":()=>Promise.all([n.e(869),n.e(223),n.e(415)]).then(n.bind(n,3729)),"component---src-pages-about-jsx":()=>Promise.all([n.e(869),n.e(223),n.e(393),n.e(237),n.e(96)]).then(n.bind(n,5379)),"component---src-pages-blog-blog-post-jsx":()=>Promise.all([n.e(869),n.e(223),n.e(81)]).then(n.bind(n,3774)),"component---src-pages-blog-jsx":()=>Promise.all([n.e(869),n.e(223),n.e(493)]).then(n.bind(n,8285)),"component---src-pages-curriculum-vitae-jsx":()=>Promise.all([n.e(869),n.e(223),n.e(393),n.e(237),n.e(624)]).then(n.bind(n,6208)),"component---src-pages-cv-jsx":()=>Promise.all([n.e(869),n.e(223),n.e(393),n.e(237),n.e(342)]).then(n.bind(n,8510)),"component---src-pages-index-jsx":()=>Promise.all([n.e(869),n.e(223),n.e(393),n.e(285),n.e(279)]).then(n.bind(n,4790)),"component---src-pages-portfolio-fibonacci-assistant-telegram-bot-jsx":()=>Promise.all([n.e(869),n.e(223),n.e(653)]).then(n.bind(n,3151)),"component---src-pages-portfolio-grabcoinclub-nft-jsx":()=>Promise.all([n.e(869),n.e(223),n.e(878)]).then(n.bind(n,2888)),"component---src-pages-portfolio-jsx":()=>Promise.all([n.e(869),n.e(223),n.e(393),n.e(285),n.e(71)]).then(n.bind(n,4218)),"component---src-pages-portfolio-poolex-ai-jsx":()=>Promise.all([n.e(869),n.e(223),n.e(124)]).then(n.bind(n,6919)),"component---src-pages-portfolio-roborovski-nft-jsx":()=>Promise.all([n.e(869),n.e(223),n.e(627)]).then(n.bind(n,9197)),"component---src-pages-portfolio-uls-token-jsx":()=>Promise.all([n.e(869),n.e(223),n.e(398)]).then(n.bind(n,7478)),"component---src-pages-portfolio-world-millionaire-challenge-jsx":()=>Promise.all([n.e(869),n.e(223),n.e(262)]).then(n.bind(n,8478)),"component---src-pages-privacy-jsx":()=>Promise.all([n.e(869),n.e(223),n.e(955)]).then(n.bind(n,3201)),"component---src-pages-products-hotcoin-database-jsx":()=>Promise.all([n.e(869),n.e(223),n.e(50)]).then(n.bind(n,774)),"component---src-pages-products-jsx":()=>Promise.all([n.e(869),n.e(223),n.e(405)]).then(n.bind(n,8901)),"component---src-pages-products-notcoin-database-jsx":()=>Promise.all([n.e(869),n.e(223),n.e(896)]).then(n.bind(n,2292)),"component---src-pages-projects-jsx":()=>Promise.all([n.e(869),n.e(223),n.e(311)]).then(n.bind(n,7811)),"component---src-pages-services-forks-jsx":()=>Promise.all([n.e(869),n.e(223),n.e(125)]).then(n.bind(n,8479)),"component---src-pages-services-jsx":()=>Promise.all([n.e(869),n.e(223),n.e(681)]).then(n.bind(n,5345)),"component---src-pages-services-telegram-bots-jsx":()=>Promise.all([n.e(869),n.e(223),n.e(594)]).then(n.bind(n,9396)),"component---src-pages-terms-jsx":()=>Promise.all([n.e(869),n.e(223),n.e(162)]).then(n.bind(n,8220))}},9377:function(t,e,n){t.exports=[{plugin:n(7914),options:{plugins:[],icon:"src/images/icon.png",name:"IVANNIKOV.PRO",short_name:"IVANNIKOV.PRO",description:"Custom development of Blockchain / Web3 / Crypto projects",start_url:"/",background_color:"#f7f0eb",theme_color:"#a2466c",lang:"en",display:"standalone",localize:[{start_url:"/ru/",lang:"ru",name:"IVANNIKOV.PRO",short_name:"IVANNIKOV.PRO",description:"Заказная разработка блокчейн / веб3 / крипто проектов"}],legacy:!0,theme_color_in_head:!0,cache_busting_mode:"query",crossOrigin:"anonymous",include_favicon:!0,cacheDigest:"1dee58e1ee58b3f3a28d908e0c265fa4"}},{plugin:n(8710),options:{plugins:[],trackingIds:["G-ZPD3FNRKQQ","GT-NNM8DV6","AW-16456714470"],gtagConfig:{optimize_id:"OPT_CONTAINER_ID",anonymize_ip:!1,cookie_expires:0},pluginConfig:{head:!0,respectDNT:!0,exclude:["/preview/**","/do-not-track/me/too/"],origin:"https://ivannikov.pro",delayOnRouteUpdate:0}}},{plugin:n(4256),options:{plugins:[],trackingId:96422747,clickmap:!0,trackLinks:!0,accurateTrackBounce:!0,trackHash:!0,webvisor:!0}},{plugin:n(7960),options:{plugins:[]}},{plugin:n(46),options:{plugins:[]}},{plugin:n(5683),options:{plugins:[]}},{plugin:n(5616),options:{plugins:[],maxWidth:590,linkImagesToOriginal:!0,showCaptions:!1,markdownCaptions:!1,backgroundColor:"white",quality:50,withWebp:!1,withAvif:!1,loading:"lazy",decoding:"async",disableBgImageOnAlpha:!1,disableBgImage:!1}},{plugin:n(1887),options:{plugins:[],defaultLang:"en",configPath:"/Users/ivannikov/work/ivannikov-pro/ivannikov.pro-project/ivannikov.pro-website/i18n/config.json"}},{plugin:n(5323),options:{plugins:[],locales:"./i18n/react-i18next",i18nextOptions:{ns:["translation","404","header","footer","terms","privacy","about","curriculum-vitae","projects","blog","products","products-notcoin-database","products-hotcoin-database","services","portfolio","projects","modal-get-in-touch"]}}},{plugin:n(7277),options:{plugins:[]}},{plugin:n(2311),options:{plugins:[]}}]},20:function(t,e,n){const r=n(9377),{getResourceURLsForPathname:o,loadPage:i,loadPageSync:a}=n(6814).Zf;e.N=function(t,e,n,s){void 0===e&&(e={});let c=r.map((n=>{if(!n.plugin[t])return;e.getResourceURLsForPathname=o,e.loadPage=i,e.loadPageSync=a;const r=n.plugin[t](e,n.options);return r&&s&&(e=s({args:e,result:r,plugin:n})),r}));return c=c.filter((t=>void 0!==t)),c.length>0?c:n?[n]:[]},e.v=(t,e,n)=>r.reduce(((n,r)=>r.plugin[t]?n.then((()=>r.plugin[t](e,r.options))):n),Promise.resolve())},700:function(t,e){e.U=()=>""},9369:function(t,e,n){"use strict";n.d(e,{A:function(){return r}});var r=function(t){return t=t||Object.create(null),{on:function(e,n){(t[e]||(t[e]=[])).push(n)},off:function(e,n){t[e]&&t[e].splice(t[e].indexOf(n)>>>0,1)},emit:function(e,n){(t[e]||[]).slice().map((function(t){t(n)})),(t["*"]||[]).slice().map((function(t){t(e,n)}))}}}()},8990:function(t,e,n){"use strict";n.d(e,{Yl:function(){return p},Hh:function(){return d},UA:function(){return h},QX:function(){return f}});var r=n(6462),o=n(8797),i=t=>{if(void 0===t)return t;let[e,n=""]=t.split("?");return n&&(n="?"+n),"/"===e?"/"+n:"/"===e.charAt(e.length-1)?e.slice(0,-1)+n:e+n},a=n(6491);const s=new Map;let c=[];const u=t=>{let e=t;if(-1!==t.indexOf("?")){const[n,r]=t.split("?");e=n+"?"+encodeURIComponent(r)}const n=decodeURIComponent(e);return(0,o.A)(n,decodeURIComponent("")).split("#")[0]};function l(t){return t.startsWith("/")||t.startsWith("https://")||t.startsWith("http://")?t:new URL(t,window.location.href+(window.location.href.endsWith("/")?"":"/")).pathname}const f=t=>{c=t},p=t=>{const e=g(t),n=c.map((t=>{let{path:e,matchPath:n}=t;return{path:n,originalPath:e}})),o=(0,r.pick)(n,e);return o?i(o.route.originalPath):null},h=t=>{const e=g(t),n=c.map((t=>{let{path:e,matchPath:n}=t;return{path:n,originalPath:e}})),o=(0,r.pick)(n,e);return o?o.params:{}},d=t=>{const e=u(l(t));if(s.has(e))return s.get(e);const n=(0,a.X)(t);if(n)return d(n.toPath);let r=p(e);return r||(r=g(t)),s.set(e,r),r},g=t=>{let e=u(l(t));return"/index.html"===e&&(e="/"),e=i(e),e}},4194:function(t,e,n){"use strict";n.r(e),n.d(e,{Link:function(){return s.N_},PageRenderer:function(){return i()},Script:function(){return O.Script},ScriptStrategy:function(){return O.ScriptStrategy},Slice:function(){return w},StaticQuery:function(){return c.de},StaticQueryContext:function(){return c.G},collectedScriptsByPage:function(){return O.collectedScriptsByPage},graphql:function(){return k},navigate:function(){return s.oo},parsePath:function(){return s.Rr},prefetchPathname:function(){return E},scriptCache:function(){return O.scriptCache},scriptCallbackCache:function(){return O.scriptCallbackCache},useScrollRestoration:function(){return a.RV},useStaticQuery:function(){return c.GR},withAssetPrefix:function(){return s.Zf},withPrefix:function(){return s.Fe}});var r=n(6814),o=n(2549),i=n.n(o),a=n(7035),s=n(7078),c=n(7231);var u=n(7387);function l(t){return l=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},l(t)}var f=n(3662);function p(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(p=function(){return!!t})()}function h(t){var e="function"==typeof Map?new Map:void 0;return h=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(e){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return function(t,e,n){if(p())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,e);var o=new(t.bind.apply(t,r));return n&&(0,f.A)(o,n.prototype),o}(t,arguments,l(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),(0,f.A)(n,t)},h(t)}var d=n(6540),g=n(700),m=n(2024);const y=t=>{let{sliceId:e,children:n}=t;const r=[d.createElement("slice-start",{id:e+"-1"}),d.createElement("slice-end",{id:e+"-1"})];return n&&(r.push(n),r.push(d.createElement("slice-start",{id:e+"-2"}),d.createElement("slice-end",{id:e+"-2"}))),r},v=t=>{let{sliceName:e,allowEmpty:n,children:r,...o}=t;const i=(0,d.useContext)(m.Jr),a=(0,d.useContext)(m.hr),s=i[e];if(!s){if(n)return null;throw new Error('Slice "'+s+'" for "'+e+'" slot not found')}const c=((t,e)=>Object.keys(e).length?t+"-"+(0,g.U)(e):t)(s,o);let u=a[c];return u?r&&(u.hasChildren=!0):a[c]=u={props:o,sliceName:s,hasChildren:!!r},d.createElement(y,{sliceId:c},r)},b=t=>{let{sliceName:e,allowEmpty:n,children:r,...o}=t;const i=(0,d.useContext)(m.Jr),a=(0,d.useContext)(m.dd),s=i[e],c=a.get(s);if(!c){if(n)return null;throw new Error('Slice "'+s+'" for "'+e+'" slot not found')}return d.createElement(c.component,Object.assign({sliceContext:c.sliceContext,data:c.data},o),r)};function w(t){{const e={...t,sliceName:t.alias};delete e.alias,delete e.__renderedByLocation;const n=(0,d.useContext)(m.j$),r=S(t);if(Object.keys(r).length)throw new _("browser"===n.renderEnvironment,e.sliceName,r,t.__renderedByLocation);if("server"===n.renderEnvironment)return d.createElement(v,e);if("browser"===n.renderEnvironment)return d.createElement(b,e);if("engines"===n.renderEnvironment||"dev-ssr"===n.renderEnvironment)return d.createElement(b,e);if("slices"===n.renderEnvironment){let e="";try{e='\n\nSlice component "'+n.sliceRoot.name+'" ('+n.sliceRoot.componentPath+') tried to render '}catch{}throw new Error("Nested slices are not supported."+e+"\n\nSee https://gatsbyjs.com/docs/reference/built-in-components/gatsby-slice#nested-slices")}throw new Error('Slice context "'+n.renderEnvironment+'" is not supported.')}}let _=function(t){function e(n,r,o,i){var a;const s=Object.entries(o).map((t=>{let[e,n]=t;return'not serializable "'+n+'" type passed to "'+e+'" prop'})).join(", "),c="SlicePropsError";let u="",l="";if(n){const t=d.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactDebugCurrentFrame.getCurrentStack().trim().split("\n").slice(1);t[0]=t[0].trim(),u="\n"+t.join("\n"),l='Slice "'+r+'" was passed props that are not serializable ('+s+")."}else{l=c+': Slice "'+r+'" was passed props that are not serializable ('+s+").";u=l+"\n"+(new Error).stack.trim().split("\n").slice(2).join("\n")}return(a=t.call(this,l)||this).name=c,u?a.stack=u:Error.captureStackTrace(function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(a),e),i&&(a.forcedLocation={...i,functionName:"Slice"}),a}return(0,u.A)(e,t),e}(h(Error));const S=function(t,e,n,r){void 0===e&&(e={}),void 0===n&&(n=[]),void 0===r&&(r=null);for(const[o,i]of Object.entries(t)){if(null==i||!r&&"children"===o)continue;const t=r?r+"."+o:o;"function"==typeof i?e[t]=typeof i:"object"==typeof i&&n.indexOf(i)<=0&&(n.push(i),S(i,e,n,t))}return e};var O=n(5535);const E=r.Ay.enqueue;function k(){throw new Error("It appears like Gatsby is misconfigured. Gatsby related `graphql` calls are supposed to only be evaluated at compile time, and then compiled away. Unfortunately, something went wrong and the query was left in the compiled code.\n\nUnless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.")}},6814:function(t,e,n){"use strict";n.d(e,{Wi:function(){return f},N5:function(){return _},Ay:function(){return E},Rh:function(){return j},LE:function(){return k},Zf:function(){return O},iC:function(){return S}});var r=n(7387),o=n(4506),i=n(8163);const a=function(t){if("undefined"==typeof document)return!1;const e=document.createElement("link");try{if(e.relList&&"function"==typeof e.relList.supports)return e.relList.supports(t)}catch(n){return!1}return!1}("prefetch")?function(t,e){return new Promise(((n,r)=>{if("undefined"==typeof document)return void r();const o=document.createElement("link");o.setAttribute("rel","prefetch"),o.setAttribute("href",t),Object.keys(e).forEach((t=>{o.setAttribute(t,e[t])})),o.onload=n,o.onerror=r;(document.getElementsByTagName("head")[0]||document.getElementsByName("script")[0].parentNode).appendChild(o)}))}:function(t){return new Promise(((e,n)=>{const r=new XMLHttpRequest;r.open("GET",t,!0),r.onload=()=>{200===r.status?e():n()},r.send(null)}))},s={};var c=function(t,e){return new Promise((n=>{s[t]?n():a(t,e).then((()=>{n(),s[t]=!0})).catch((()=>{}))}))},u=n(9369),l=n(8990);const f={Error:"error",Success:"success"},p=t=>{const[e,n]=t.split("?");var r;return"/page-data/"+("/"===e?"index":(r="/"===(r=e)[0]?r.slice(1):r).endsWith("/")?r.slice(0,-1):r)+"/page-data.json"+(n?"?"+n:"")},h=t=>t.startsWith("//");function d(t,e){return void 0===e&&(e="GET"),new Promise((n=>{const r=new XMLHttpRequest;r.open(e,t,!0),r.onreadystatechange=()=>{4==r.readyState&&n(r)},r.send(null)}))}const g=/bot|crawler|spider|crawling/i,m=function(t,e,n){var r;void 0===e&&(e=null);const o={componentChunkName:t.componentChunkName,path:t.path,webpackCompilationHash:t.webpackCompilationHash,matchPath:t.matchPath,staticQueryHashes:t.staticQueryHashes,getServerDataError:t.getServerDataError,slicesMap:null!==(r=t.slicesMap)&&void 0!==r?r:{}};return{component:e,head:n,json:t.result,page:o}};function y(t){return new Promise((e=>{try{const n=t.readRoot();e(n)}catch(n){if(!Object.hasOwnProperty.call(n,"_response")||!Object.hasOwnProperty.call(n,"_status"))throw n;setTimeout((()=>{y(t).then(e)}),200)}}))}let v=function(){function t(t,e){this.inFlightNetworkRequests=new Map,this.pageDb=new Map,this.inFlightDb=new Map,this.staticQueryDb={},this.pageDataDb=new Map,this.partialHydrationDb=new Map,this.slicesDataDb=new Map,this.sliceInflightDb=new Map,this.slicesDb=new Map,this.isPrefetchQueueRunning=!1,this.prefetchQueued=[],this.prefetchTriggered=new Set,this.prefetchCompleted=new Set,this.loadComponent=t,(0,l.QX)(e)}var e=t.prototype;return e.memoizedGet=function(t){let e=this.inFlightNetworkRequests.get(t);return e||(e=d(t,"GET"),this.inFlightNetworkRequests.set(t,e)),e.then((e=>(this.inFlightNetworkRequests.delete(t),e))).catch((e=>{throw this.inFlightNetworkRequests.delete(t),e}))},e.setApiRunner=function(t){this.apiRunner=t,this.prefetchDisabled=t("disableCorePrefetching").some((t=>t))},e.fetchPageDataJson=function(t){const{pagePath:e,retries:n=0}=t,r=p(e);return this.memoizedGet(r).then((r=>{const{status:o,responseText:i}=r;if(200===o)try{const n=JSON.parse(i);if(void 0===n.path)throw new Error("not a valid pageData response");const r=e.split("?")[1];return r&&!n.path.includes(r)&&(n.path+="?"+r),Object.assign(t,{status:f.Success,payload:n})}catch(a){}return 404===o||200===o?"/404.html"===e||"/500.html"===e?Object.assign(t,{status:f.Error}):this.fetchPageDataJson(Object.assign(t,{pagePath:"/404.html",notFound:!0})):500===o?this.fetchPageDataJson(Object.assign(t,{pagePath:"/500.html",internalServerError:!0})):n<3?this.fetchPageDataJson(Object.assign(t,{retries:n+1})):Object.assign(t,{status:f.Error})}))},e.fetchPartialHydrationJson=function(t){const{pagePath:e,retries:n=0}=t,r=p(e).replace(".json","-rsc.json");return this.memoizedGet(r).then((r=>{const{status:o,responseText:i}=r;if(200===o)try{return Object.assign(t,{status:f.Success,payload:i})}catch(a){}return 404===o||200===o?"/404.html"===e||"/500.html"===e?Object.assign(t,{status:f.Error}):this.fetchPartialHydrationJson(Object.assign(t,{pagePath:"/404.html",notFound:!0})):500===o?this.fetchPartialHydrationJson(Object.assign(t,{pagePath:"/500.html",internalServerError:!0})):n<3?this.fetchPartialHydrationJson(Object.assign(t,{retries:n+1})):Object.assign(t,{status:f.Error})}))},e.loadPageDataJson=function(t){const e=(0,l.Hh)(t);if(this.pageDataDb.has(e)){const t=this.pageDataDb.get(e);return Promise.resolve(t)}return this.fetchPageDataJson({pagePath:e}).then((t=>(this.pageDataDb.set(e,t),t)))},e.loadPartialHydrationJson=function(t){const e=(0,l.Hh)(t);if(this.partialHydrationDb.has(e)){const t=this.partialHydrationDb.get(e);return Promise.resolve(t)}return this.fetchPartialHydrationJson({pagePath:e}).then((t=>(this.partialHydrationDb.set(e,t),t)))},e.loadSliceDataJson=function(t){if(this.slicesDataDb.has(t)){const e=this.slicesDataDb.get(t);return Promise.resolve({sliceName:t,jsonPayload:e})}return d("/slice-data/"+t+".json","GET").then((e=>{const n=JSON.parse(e.responseText);return this.slicesDataDb.set(t,n),{sliceName:t,jsonPayload:n}}))},e.findMatchPath=function(t){return(0,l.Yl)(t)},e.loadPage=function(t){const e=(0,l.Hh)(t);if(this.pageDb.has(e)){const t=this.pageDb.get(e);return t.error?Promise.resolve({error:t.error,status:t.status}):Promise.resolve(t.payload)}if(this.inFlightDb.has(e))return this.inFlightDb.get(e);const n=[this.loadAppData(),this.loadPageDataJson(e)];const r=Promise.all(n).then((t=>{const[n,r,a]=t;if(r.status===f.Error||(null==a?void 0:a.status)===f.Error)return{status:f.Error};let s=r.payload;const{componentChunkName:c,staticQueryHashes:l=[],slicesMap:p={}}=s,h={},d=Array.from(new Set(Object.values(p))),g=t=>{if(this.slicesDb.has(t.name))return this.slicesDb.get(t.name);if(this.sliceInflightDb.has(t.name))return this.sliceInflightDb.get(t.name);const e=this.loadComponent(t.componentChunkName).then((e=>{return{component:(n=e,n&&n.default||n),sliceContext:t.result.sliceContext,data:t.result.data};var n}));return this.sliceInflightDb.set(t.name,e),e.then((e=>{this.slicesDb.set(t.name,e),this.sliceInflightDb.delete(t.name)})),e};return Promise.all(d.map((t=>this.loadSliceDataJson(t)))).then((t=>{const p=[],d=(0,o.A)(l);for(const{jsonPayload:e,sliceName:n}of Object.values(t)){p.push({name:n,...e});for(const t of e.staticQueryHashes)d.includes(t)||d.push(t)}const v=[Promise.all(p.map(g)),this.loadComponent(c,"head")];v.push(this.loadComponent(c));const b=Promise.all(v).then((t=>{const[e,o,c]=t;h.createdAt=new Date;for(const n of e)(!n||n instanceof Error)&&(h.status=f.Error,h.error=n);let u;if((!c||c instanceof Error)&&(h.status=f.Error,h.error=c),h.status!==f.Error){if(h.status=f.Success,!0!==r.notFound&&!0!==(null==a?void 0:a.notFound)||(h.notFound=!0),s=Object.assign(s,{webpackCompilationHash:n?n.webpackCompilationHash:""}),"string"==typeof(null==a?void 0:a.payload)){u=m(s,null,o),u.partialHydration=a.payload;const t=new ReadableStream({start(t){const e=new TextEncoder;t.enqueue(e.encode(a.payload))},pull(t){t.close()},cancel(){}});return y((0,i.createFromReadableStream)(t)).then((t=>(u.partialHydration=t,u)))}u=m(s,c,o)}return u})),w=Promise.all(d.map((t=>{if(this.staticQueryDb[t]){const e=this.staticQueryDb[t];return{staticQueryHash:t,jsonPayload:e}}return this.memoizedGet("/page-data/sq/d/"+t+".json").then((e=>{const n=JSON.parse(e.responseText);return{staticQueryHash:t,jsonPayload:n}})).catch((()=>{throw new Error("We couldn't load \"/page-data/sq/d/"+t+'.json"')}))}))).then((t=>{const e={};return t.forEach((t=>{let{staticQueryHash:n,jsonPayload:r}=t;e[n]=r,this.staticQueryDb[n]=r})),e}));return Promise.all([b,w]).then((t=>{let n,[r,o]=t;return r&&(n={...r,staticQueryResults:o},h.payload=n,u.A.emit("onPostLoadPageResources",{page:n,pageResources:n})),this.pageDb.set(e,h),h.error?{error:h.error,status:h.status}:n})).catch((t=>({error:t,status:f.Error})))}))}));return r.then((()=>{this.inFlightDb.delete(e)})).catch((t=>{throw this.inFlightDb.delete(e),t})),this.inFlightDb.set(e,r),r},e.loadPageSync=function(t,e){void 0===e&&(e={});const n=(0,l.Hh)(t);if(this.pageDb.has(n)){var r;const t=this.pageDb.get(n);if(t.payload)return t.payload;if(null!==(r=e)&&void 0!==r&&r.withErrorDetails)return{error:t.error,status:t.status}}},e.shouldPrefetch=function(t){return!!(()=>{if("connection"in navigator&&void 0!==navigator.connection){if((navigator.connection.effectiveType||"").includes("2g"))return!1;if(navigator.connection.saveData)return!1}return!0})()&&((!navigator.userAgent||!g.test(navigator.userAgent))&&!this.pageDb.has(t))},e.prefetch=function(t){if(!this.shouldPrefetch(t))return{then:t=>t(!1),abort:()=>{}};if(this.prefetchTriggered.has(t))return{then:t=>t(!0),abort:()=>{}};const e={resolve:null,reject:null,promise:null};e.promise=new Promise(((t,n)=>{e.resolve=t,e.reject=n})),this.prefetchQueued.push([t,e]);const n=new AbortController;return n.signal.addEventListener("abort",(()=>{const e=this.prefetchQueued.findIndex((e=>{let[n]=e;return n===t}));-1!==e&&this.prefetchQueued.splice(e,1)})),this.isPrefetchQueueRunning||(this.isPrefetchQueueRunning=!0,setTimeout((()=>{this._processNextPrefetchBatch()}),3e3)),{then:(t,n)=>e.promise.then(t,n),abort:n.abort.bind(n)}},e._processNextPrefetchBatch=function(){(window.requestIdleCallback||(t=>setTimeout(t,0)))((()=>{const t=this.prefetchQueued.splice(0,4),e=Promise.all(t.map((t=>{let[e,n]=t;return this.prefetchTriggered.has(e)||(this.apiRunner("onPrefetchPathname",{pathname:e}),this.prefetchTriggered.add(e)),this.prefetchDisabled?n.resolve(!1):this.doPrefetch((0,l.Hh)(e)).then((()=>{this.prefetchCompleted.has(e)||(this.apiRunner("onPostPrefetchPathname",{pathname:e}),this.prefetchCompleted.add(e)),n.resolve(!0)}))})));this.prefetchQueued.length?e.then((()=>{setTimeout((()=>{this._processNextPrefetchBatch()}),3e3)})):this.isPrefetchQueueRunning=!1}))},e.doPrefetch=function(t){const e=p(t);return c(e,{crossOrigin:"anonymous",as:"fetch"}).then((()=>this.loadPageDataJson(t)))},e.hovering=function(t){this.loadPage(t)},e.getResourceURLsForPathname=function(t){const e=(0,l.Hh)(t),n=this.pageDataDb.get(e);if(n){const t=m(n.payload);return[].concat((0,o.A)(b(t.page.componentChunkName)),[p(e)])}return null},e.isPageNotFound=function(t){const e=(0,l.Hh)(t),n=this.pageDb.get(e);return!n||n.notFound},e.loadAppData=function(t){return void 0===t&&(t=0),this.memoizedGet("/page-data/app-data.json").then((e=>{const{status:n,responseText:r}=e;let o;if(200!==n&&t<3)return this.loadAppData(t+1);if(200===n)try{const t=JSON.parse(r);if(void 0===t.webpackCompilationHash)throw new Error("not a valid app-data response");o=t}catch(i){}return o}))},t}();const b=t=>(window.___chunkMapping[t]||[]).map((t=>""+t));let w,_=function(t){function e(e,n,r){var o;return o=t.call(this,(function(t,n){if(void 0===n&&(n="components"),!e[n="components"][t])throw new Error("We couldn't find the correct component chunk with the name \""+t+'"');return e[n][t]().catch((t=>t))}),n)||this,r&&o.pageDataDb.set((0,l.Hh)(r.path),{pagePath:r.path,payload:r,status:"success"}),o}(0,r.A)(e,t);var n=e.prototype;return n.doPrefetch=function(e){return t.prototype.doPrefetch.call(this,e).then((t=>{if(t.status!==f.Success)return Promise.resolve();const e=t.payload,n=e.componentChunkName,r=b(n);return Promise.all(r.map(c)).then((()=>e))}))},n.loadPageDataJson=function(e){return t.prototype.loadPageDataJson.call(this,e).then((t=>t.notFound?h(e)?t:d(e,"HEAD").then((e=>200===e.status?{status:f.Error}:t)):t))},n.loadPartialHydrationJson=function(e){return t.prototype.loadPartialHydrationJson.call(this,e).then((t=>t.notFound?h(e)?t:d(e,"HEAD").then((e=>200===e.status?{status:f.Error}:t)):t))},e}(v);const S=t=>{w=t},O={enqueue:t=>w.prefetch(t),getResourceURLsForPathname:t=>w.getResourceURLsForPathname(t),loadPage:t=>w.loadPage(t),loadPageSync:function(t,e){return void 0===e&&(e={}),w.loadPageSync(t,e)},prefetch:t=>w.prefetch(t),isPageNotFound:t=>w.isPageNotFound(t),hovering:t=>w.hovering(t),loadAppData:()=>w.loadAppData()};var E=O;function k(){return w?w.staticQueryDb:{}}function j(){return w?w.slicesDb:{}}},6017:function(t,e,n){"use strict";n.d(e,{A:function(){return E}});var r=n(6540),o=n(5556),i=n.n(o),a=n(20),s=n(8990),c=n(4506),u=n(4194),l=n(6462),f=n(9732);function p(t){let{children:e,callback:n}=t;return(0,r.useEffect)((()=>{n()})),e}const h=["link","meta","style","title","base","noscript","script","html","body"];function d(t,e){if(t instanceof HTMLElement&&e instanceof HTMLElement){const n=e.getAttribute("nonce");if(n&&!t.getAttribute("nonce")){const r=e.cloneNode(!0);return r.setAttribute("nonce",""),r.nonce=n,n===t.nonce&&t.isEqualNode(r)}}return t.isEqualNode(e)}function g(t,e){void 0===e&&(e={html:{},body:{}});const n=new Map,r=[];for(const u of t.childNodes){var o,i;const t=u.nodeName.toLowerCase(),l=null===(o=u.attributes)||void 0===o||null===(i=o.id)||void 0===i?void 0:i.value;if(v(u)){if(y(t))if("html"===t||"body"===t)for(const n of u.attributes){const r="style"===n.name;var a;if(e[t]={...e[t]},r||(e[t][n.name]=n.value),r)e[t].style=""+(null!==(a=e[t])&&void 0!==a&&a.style?e[t].style:"")+n.value+" "}else{let t=u.cloneNode(!0);if(t.setAttribute("data-gatsby-head",!0),"script"===t.nodeName.toLowerCase()&&(t=m(t)),l)if(n.has(l)){var s;const e=n.get(l);null===(s=r[e].parentNode)||void 0===s||s.removeChild(r[e]),r[e]=t}else r.push(t),n.set(l,r.length-1);else r.push(t)}u.childNodes.length&&r.push.apply(r,(0,c.A)(g(u,e).validHeadNodes))}}return{validHeadNodes:r,htmlAndBodyAttributes:e}}function m(t){const e=document.createElement("script");for(const n of t.attributes)e.setAttribute(n.name,n.value);return e.innerHTML=t.innerHTML,e}function y(t){return h.includes(t)}function v(t){return 1===t.nodeType}const b=document.createElement("div"),w={html:[],body:[]},_=()=>{var t;const{validHeadNodes:e,htmlAndBodyAttributes:n}=g(b);w.html=Object.keys(n.html),w.body=Object.keys(n.body),function(t){if(!t)return;const{html:e,body:n}=t,r=document.querySelector("html");r&&Object.entries(e).forEach((t=>{let[e,n]=t;r.setAttribute(e,n)}));const o=document.querySelector("body");o&&Object.entries(n).forEach((t=>{let[e,n]=t;o.setAttribute(e,n)}))}(n);const r=document.querySelectorAll("[data-gatsby-head]");var o;if(0===r.length)return void(o=document.head).append.apply(o,(0,c.A)(e));const i=[];!function(t){let{oldNodes:e,newNodes:n,onStale:r,onNew:o}=t;for(const i of e){const t=n.findIndex((t=>d(t,i)));-1===t?r(i):n.splice(t,1)}for(const i of n)o(i)}({oldNodes:r,newNodes:e,onStale:t=>t.parentNode.removeChild(t),onNew:t=>i.push(t)}),(t=document.head).append.apply(t,i)};function S(t){let{pageComponent:e,staticQueryResults:n,pageComponentProps:o}=t;(0,r.useEffect)((()=>{if(null!=e&&e.Head){!function(t){if("function"!=typeof t)throw new Error('Expected "Head" export to be a function got "'+typeof t+'".')}(e.Head);const{render:i}=(0,f.n)(),s=r.createElement(e.Head,{location:{pathname:(t=o).location.pathname},params:t.params,data:t.data||{},serverData:t.serverData,pageContext:t.pageContext}),c=(0,a.N)("wrapRootElement",{element:s},s,(t=>{let{result:e}=t;return{element:e}})).pop();i(r.createElement(p,{callback:_},r.createElement(u.StaticQueryContext.Provider,{value:n},r.createElement(l.LocationProvider,null,c))),b)}var t;return()=>{!function(){const t=document.querySelectorAll("[data-gatsby-head]");for(const e of t)e.parentNode.removeChild(e)}(),function(t){if(!t)return;const{html:e,body:n}=t;if(e){const t=document.querySelector("html");e.forEach((e=>{t&&t.removeAttribute(e)}))}if(n){const t=document.querySelector("body");n.forEach((e=>{t&&t.removeAttribute(e)}))}}(w)}}))}function O(t){const e={...t,params:{...(0,s.UA)(t.location.pathname),...t.pageResources.json.pageContext.__params}};let n;var o;n=t.pageResources.partialHydration?t.pageResources.partialHydration:(0,r.createElement)((o=t.pageResources.component)&&o.default||o,{...e,key:t.path||t.pageResources.page.path});S({pageComponent:t.pageResources.head,staticQueryResults:t.pageResources.staticQueryResults,pageComponentProps:e});return(0,a.N)("wrapPageElement",{element:n,props:e},n,(t=>{let{result:n}=t;return{element:n,props:e}})).pop()}O.propTypes={location:i().object.isRequired,pageResources:i().object.isRequired,data:i().object,pageContext:i().object.isRequired};var E=O},6498:function(t,e,n){"use strict";var r=n(7387),o=n(20),i=n(6540),a=n(6462),s=n(7035),c=n(7231),u=n(2024),l=n(6814),f=n(6491),p=n(9369);const h={id:"gatsby-announcer",style:{position:"absolute",top:0,width:1,height:1,padding:0,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:0},"aria-live":"assertive","aria-atomic":"true"};var d=n(7078);function g(t){const e=(0,f.X)(t),{hash:n,search:r}=window.location;return null!=e&&(window.___replace(e.toPath+r+n),!0)}let m="";window.addEventListener("unhandledrejection",(t=>{/loading chunk \d* failed./i.test(t.reason)&&m&&(window.location.pathname=m)}));const y=(t,e)=>{g(t.pathname)||(m=t.pathname,(0,o.N)("onPreRouteUpdate",{location:t,prevLocation:e}))},v=(t,e)=>{g(t.pathname)||(0,o.N)("onRouteUpdate",{location:t,prevLocation:e})},b=function(t,e){if(void 0===e&&(e={}),"number"==typeof t)return void a.globalHistory.navigate(t);const{pathname:n,search:r,hash:i}=(0,d.Rr)(t),s=(0,f.X)(n);if(s&&(t=s.toPath+r+i),window.___swUpdated)return void(window.location=n+r+i);const c=setTimeout((()=>{p.A.emit("onDelayedLoadPageResources",{pathname:n}),(0,o.N)("onRouteUpdateDelayed",{location:window.location})}),1e3);l.Ay.loadPage(n+r).then((o=>{if(!o||o.status===l.Wi.Error)return window.history.replaceState({},"",location.href),window.location=n,void clearTimeout(c);o&&o.page.webpackCompilationHash!==window.___webpackCompilationHash&&("serviceWorker"in navigator&&null!==navigator.serviceWorker.controller&&"activated"===navigator.serviceWorker.controller.state&&navigator.serviceWorker.controller.postMessage({gatsbyApi:"clearPathResources"}),window.location=n+r+i),(0,a.navigate)(t,e),clearTimeout(c)}))};function w(t,e){let{location:n}=e;const{pathname:r,hash:i}=n,a=(0,o.N)("shouldUpdateScroll",{prevRouterProps:t,pathname:r,routerProps:{location:n},getSavedScrollPosition:t=>[0,this._stateStorage.read(t,t.key)]});if(a.length>0)return a[a.length-1];if(t){const{location:{pathname:e}}=t;if(e===r)return i?decodeURI(i.slice(1)):[0,0]}return!0}let _=function(t){function e(e){var n;return(n=t.call(this,e)||this).announcementRef=i.createRef(),n}(0,r.A)(e,t);var n=e.prototype;return n.componentDidUpdate=function(t,e){requestAnimationFrame((()=>{let t="new page at "+this.props.location.pathname;document.title&&(t=document.title);const e=document.querySelectorAll("#gatsby-focus-wrapper h1");e&&e.length&&(t=e[0].textContent);const n="Navigated to "+t;if(this.announcementRef.current){this.announcementRef.current.innerText!==n&&(this.announcementRef.current.innerText=n)}}))},n.render=function(){return i.createElement("div",Object.assign({},h,{ref:this.announcementRef}))},e}(i.Component);const S=(t,e)=>{var n,r;return t.href!==e.href||(null==t||null===(n=t.state)||void 0===n?void 0:n.key)!==(null==e||null===(r=e.state)||void 0===r?void 0:r.key)};let O=function(t){function e(e){var n;return n=t.call(this,e)||this,y(e.location,null),n}(0,r.A)(e,t);var n=e.prototype;return n.componentDidMount=function(){v(this.props.location,null)},n.shouldComponentUpdate=function(t){return!!S(this.props.location,t.location)&&(y(t.location,this.props.location),!0)},n.componentDidUpdate=function(t){S(t.location,this.props.location)&&v(this.props.location,t.location)},n.render=function(){return i.createElement(i.Fragment,null,this.props.children,i.createElement(_,{location:location}))},e}(i.Component);var E=n(6017),k=n(6877);function j(t,e){for(var n in t)if(!(n in e))return!0;for(var r in e)if(t[r]!==e[r])return!0;return!1}var P=function(t){function e(e){var n;n=t.call(this)||this;const{location:r,pageResources:o}=e;return n.state={location:{...r},pageResources:o||l.Ay.loadPageSync(r.pathname+r.search,{withErrorDetails:!0})},n}(0,r.A)(e,t),e.getDerivedStateFromProps=function(t,e){let{location:n}=t;if(e.location.href!==n.href){return{pageResources:l.Ay.loadPageSync(n.pathname+n.search,{withErrorDetails:!0}),location:{...n}}}return{location:{...n}}};var n=e.prototype;return n.loadResources=function(t){l.Ay.loadPage(t).then((e=>{e&&e.status!==l.Wi.Error?this.setState({location:{...window.location},pageResources:e}):(window.history.replaceState({},"",location.href),window.location=t)}))},n.shouldComponentUpdate=function(t,e){return e.pageResources?this.state.pageResources!==e.pageResources||(this.state.pageResources.component!==e.pageResources.component||(this.state.pageResources.json!==e.pageResources.json||(!(this.state.location.key===e.location.key||!e.pageResources.page||!e.pageResources.page.matchPath&&!e.pageResources.page.path)||function(t,e,n){return j(t.props,e)||j(t.state,n)}(this,t,e)))):(this.loadResources(t.location.pathname+t.location.search),!1)},n.render=function(){return this.props.children(this.state)},e}(i.Component),x=n(8797),T=JSON.parse('[{"path":"/ru/blog/blog-post/","matchPath":"/ru/blog/blog-post/"},{"path":"/ru/portfolio/fibonacci-assistant-telegram-bot/","matchPath":"/ru/portfolio/fibonacci-assistant-telegram-bot/"},{"path":"/ru/portfolio/grabcoinclub-nft/","matchPath":"/ru/portfolio/grabcoinclub-nft/"},{"path":"/ru/portfolio/poolex-ai/","matchPath":"/ru/portfolio/poolex-ai/"},{"path":"/ru/portfolio/roborovski-nft/","matchPath":"/ru/portfolio/roborovski-nft/"},{"path":"/ru/portfolio/uls-token/","matchPath":"/ru/portfolio/uls-token/"},{"path":"/ru/portfolio/world-millionaire-challenge/","matchPath":"/ru/portfolio/world-millionaire-challenge/"},{"path":"/ru/products/hotcoin-database/","matchPath":"/ru/products/hotcoin-database/"},{"path":"/ru/products/notcoin-database/","matchPath":"/ru/products/notcoin-database/"},{"path":"/ru/services/forks/","matchPath":"/ru/services/forks/"},{"path":"/ru/services/telegram-bots/","matchPath":"/ru/services/telegram-bots/"},{"path":"/ru/404.html","matchPath":"/ru/404.html"},{"path":"/ru/about/","matchPath":"/ru/about/"},{"path":"/ru/blog/","matchPath":"/ru/blog/"},{"path":"/ru/curriculum-vitae/","matchPath":"/ru/curriculum-vitae/"},{"path":"/ru/cv/","matchPath":"/ru/cv/"},{"path":"/ru/portfolio/","matchPath":"/ru/portfolio/"},{"path":"/ru/privacy/","matchPath":"/ru/privacy/"},{"path":"/ru/products/","matchPath":"/ru/products/"},{"path":"/ru/projects/","matchPath":"/ru/projects/"},{"path":"/ru/services/","matchPath":"/ru/services/"},{"path":"/ru/terms/","matchPath":"/ru/terms/"},{"path":"/ru/","matchPath":"/ru/"},{"path":"/ru/404/","matchPath":"/ru/*"}]'),C=n(9732);const R=new l.N5(k,T,window.pageData);(0,l.iC)(R),R.setApiRunner(o.N);const{render:A,hydrate:N}=(0,C.n)();window.asyncRequires=k,window.___emitter=p.A,window.___loader=l.Zf,a.globalHistory.listen((t=>{t.location.action=t.action})),window.___push=t=>b(t,{replace:!1}),window.___replace=t=>b(t,{replace:!0}),window.___navigate=(t,e)=>b(t,e);const D="gatsby-reload-compilation-hash-match";(0,o.v)("onClientEntry").then((()=>{(0,o.N)("registerServiceWorker").filter(Boolean).length>0&&n(626);const t=t=>i.createElement(a.BaseContext.Provider,{value:{baseuri:"/",basepath:"/"}},i.createElement(E.A,t)),e=i.createContext({}),f={renderEnvironment:"browser"};let p=function(t){function n(){return t.apply(this,arguments)||this}return(0,r.A)(n,t),n.prototype.render=function(){const{children:t}=this.props;return i.createElement(a.Location,null,(n=>{let{location:r}=n;return i.createElement(P,{location:r},(n=>{let{pageResources:r,location:o}=n;const a=(0,l.LE)(),s=(0,l.Rh)();return i.createElement(c.G.Provider,{value:a},i.createElement(u.j$.Provider,{value:f},i.createElement(u.dd.Provider,{value:s},i.createElement(u.Jr.Provider,{value:r.page.slicesMap},i.createElement(e.Provider,{value:{pageResources:r,location:o}},t)))))}))}))},n}(i.Component),h=function(n){function o(){return n.apply(this,arguments)||this}return(0,r.A)(o,n),o.prototype.render=function(){return i.createElement(e.Consumer,null,(e=>{let{pageResources:n,location:r}=e;return i.createElement(O,{location:r},i.createElement(s.z_,{location:r,shouldUpdateScroll:w},i.createElement(a.Router,{basepath:"",location:r,id:"gatsby-focus-wrapper"},i.createElement(t,Object.assign({path:"/404.html"===n.page.path||"/500.html"===n.page.path?(0,x.A)(r.pathname,""):encodeURI((n.page.matchPath||n.page.path).split("?")[0])},this.props,{location:r,pageResources:n},n.json)))))}))},o}(i.Component);const{pagePath:d,location:g}=window;d&&""+d!==g.pathname+(d.includes("?")?g.search:"")&&!(R.findMatchPath((0,x.A)(g.pathname,""))||d.match(/^\/(404|500)(\/?|.html)$/)||d.match(/^\/offline-plugin-app-shell-fallback\/?$/))&&(0,a.navigate)(""+d+(d.includes("?")?"":g.search)+g.hash,{replace:!0});const m=()=>{try{return sessionStorage}catch{return null}};l.Zf.loadPage(g.pathname+g.search).then((t=>{var e;const n=m();if(null!=t&&null!==(e=t.page)&&void 0!==e&&e.webpackCompilationHash&&t.page.webpackCompilationHash!==window.___webpackCompilationHash&&("serviceWorker"in navigator&&null!==navigator.serviceWorker.controller&&"activated"===navigator.serviceWorker.controller.state&&navigator.serviceWorker.controller.postMessage({gatsbyApi:"clearPathResources"}),n)){if(!("1"===n.getItem(D)))return n.setItem(D,"1"),void window.location.reload(!0)}if(n&&n.removeItem(D),!t||t.status===l.Wi.Error){const e="page resources for "+g.pathname+" not found. Not rendering React";if(t&&t.error)throw console.error(e),t.error;throw new Error(e)}const r=(0,o.N)("wrapRootElement",{element:i.createElement(h,null)},i.createElement(h,null),(t=>{let{result:e}=t;return{element:e}})).pop(),a=function(){const t=i.useRef(!1);return i.useEffect((()=>{t.current||(t.current=!0,performance.mark&&performance.mark("onInitialClientRender"),(0,o.N)("onInitialClientRender"))}),[]),i.createElement(p,null,r)},s=document.getElementById("gatsby-focus-wrapper");let c=A;s&&s.children.length&&(c=N);const u=(0,o.N)("replaceHydrateFunction",void 0,c)[0];function f(){const t="undefined"!=typeof window?document.getElementById("___gatsby"):null;u(i.createElement(a,null),t)}const d=document;if("complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll)setTimeout((function(){f()}),0);else{const t=function(){d.removeEventListener("DOMContentLoaded",t,!1),window.removeEventListener("load",t,!1),f()};d.addEventListener("DOMContentLoaded",t,!1),window.addEventListener("load",t,!1)}}))}))},963:function(t,e,n){"use strict";n.r(e);var r=n(6540),o=n(6814),i=n(6017);e.default=t=>{let{location:e}=t;const n=o.Ay.loadPageSync(e.pathname);return n?r.createElement(i.A,{location:e,pageResources:n,...n.json}):null}},2549:function(t,e,n){var r;t.exports=(r=n(963))&&r.default||r},9732:function(t,e,n){"use strict";n.d(e,{n:function(){return o}});const r=new WeakMap;function o(){const t=n(5338);return{render:(e,n)=>{let o=r.get(n);o||r.set(n,o=t.createRoot(n)),o.render(e)},hydrate:(e,n)=>t.hydrateRoot(n,e)}}},6491:function(t,e,n){"use strict";n.d(e,{X:function(){return i}});const r=new Map,o=new Map;function i(t){let e=r.get(t);return e||(e=o.get(t.toLowerCase())),e}[].forEach((t=>{t.ignoreCase?o.set(t.fromPath,t):r.set(t.fromPath,t)}))},626:function(t,e,n){"use strict";n.r(e);var r=n(20);"https:"!==window.location.protocol&&"localhost"!==window.location.hostname?console.error("Service workers can only be used over HTTPS, or on localhost for development"):"serviceWorker"in navigator&&navigator.serviceWorker.register("/sw.js").then((function(t){t.addEventListener("updatefound",(()=>{(0,r.N)("onServiceWorkerUpdateFound",{serviceWorker:t});const e=t.installing;console.log("installingWorker",e),e.addEventListener("statechange",(()=>{switch(e.state){case"installed":navigator.serviceWorker.controller?(window.___swUpdated=!0,(0,r.N)("onServiceWorkerUpdateReady",{serviceWorker:t}),window.___failedResources&&(console.log("resources failed, SW updated - reloading"),window.location.reload())):(console.log("Content is now available offline!"),(0,r.N)("onServiceWorkerInstalled",{serviceWorker:t}));break;case"redundant":console.error("The installing service worker became redundant."),(0,r.N)("onServiceWorkerRedundant",{serviceWorker:t});break;case"activated":(0,r.N)("onServiceWorkerActive",{serviceWorker:t})}}))}))})).catch((function(t){console.error("Error during service worker registration:",t)}))},2024:function(t,e,n){"use strict";n.d(e,{Jr:function(){return a},dd:function(){return o},hr:function(){return s},j$:function(){return i}});var r=n(6540);const o=r.createContext({}),i=r.createContext({}),a=r.createContext({}),s=r.createContext({})},7231:function(t,e,n){"use strict";n.d(e,{de:function(){return c},G:function(){return o},GR:function(){return u}});var r=n(6540);const o=(i="StaticQuery",a={},r.createServerContext?function(t,e){return void 0===e&&(e=null),globalThis.__SERVER_CONTEXT||(globalThis.__SERVER_CONTEXT={}),globalThis.__SERVER_CONTEXT[t]||(globalThis.__SERVER_CONTEXT[t]=r.createServerContext(t,e)),globalThis.__SERVER_CONTEXT[t]}(i,a):r.createContext(a));var i,a;function s(t){let{staticQueryData:e,data:n,query:o,render:i}=t;const a=n?n.data:e[o]&&e[o].data;return r.createElement(r.Fragment,null,a&&i(a),!a&&r.createElement("div",null,"Loading (StaticQuery)"))}const c=t=>{const{data:e,query:n,render:i,children:a}=t;return r.createElement(o.Consumer,null,(t=>r.createElement(s,{data:e,query:n,render:i||a,staticQueryData:t})))},u=t=>{var e;r.useContext;const n=r.useContext(o);if(isNaN(Number(t)))throw new Error("useStaticQuery was called with a string but expects to be called using `graphql`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql`"+t+"`);\n");if(null!==(e=n[t])&&void 0!==e&&e.data)return n[t].data;throw new Error("The result of this StaticQuery could not be fetched.\n\nThis is likely a bug in Gatsby and if refreshing the page does not fix it, please open an issue in https://github.com/gatsbyjs/gatsby/issues")}},8797:function(t,e,n){"use strict";function r(t,e){return void 0===e&&(e=""),e?t===e?"/":t.startsWith(e+"/")?t.slice(e.length):t:t}n.d(e,{A:function(){return r}})},7277:function(t,e,n){"use strict";n.r(e)},8710:function(t,e){"use strict";e.onRouteUpdate=function(t,e){var n=t.location;if(void 0===e&&(e={}),"function"!=typeof gtag)return null;var r=e.pluginConfig||{};if(n&&void 0!==window.excludeGtagPaths&&window.excludeGtagPaths.some((function(t){return t.test(n.pathname)})))return null;var o=function(){var t=n?n.pathname+n.search+n.hash:void 0;window.gtag("event","page_view",{page_path:t})},i=r.delayOnRouteUpdate,a=void 0===i?0:i;return"requestAnimationFrame"in window?requestAnimationFrame((function(){requestAnimationFrame((function(){return setTimeout(o,a)}))})):setTimeout(o,32+a),null}},7914:function(t,e,n){"use strict";n.r(e),n.d(e,{onRouteUpdate:function(){return i}});var r=n(4194),o=n(4598);const i=function(t,e){let{location:n}=t;{const{localize:t}=e,i=(0,o.A)(n.pathname,t,!0),a=document.head.querySelector('link[rel="manifest"]');a&&a.setAttribute("href",(0,r.withPrefix)(i))}}},4598:function(t,e,n){"use strict";e.A=void 0;var r=n(4194);e.A=function(t,e,n){void 0===n&&(n=!1);const o="manifest.webmanifest";if(!Array.isArray(e))return o;const i=e.find((e=>{let o=e.start_url;return n&&(o=(0,r.withPrefix)(o)),t.startsWith(o)}));return i?"manifest_"+i.lang+".webmanifest":o}},4256:function(t,e){"use strict";e.onRouteUpdate=function(t){var e=t.location;if("function"==typeof ym){if(e&&void 0!==window.ym&&"function"==typeof window.ym.hit)return;var n=function(){window.ym.hit(e?e.pathname+e.search+e.hash:void 0)};"requestAnimationFrame"in window?requestAnimationFrame((function(){requestAnimationFrame(n)})):setTimeout(n,32)}}},7688:function(t,e){"use strict";e.DEFAULT_OPTIONS={maxWidth:650,wrapperStyle:"",backgroundColor:"white",linkImagesToOriginal:!0,showCaptions:!1,markdownCaptions:!1,withWebp:!1,withAvif:!1,tracedSVG:!1,loading:"lazy",decoding:"async",disableBgImageOnAlpha:!1,disableBgImage:!1},e.EMPTY_ALT="GATSBY_EMPTY_ALT",e.imageClass="gatsby-resp-image-image",e.imageWrapperClass="gatsby-resp-image-wrapper",e.imageBackgroundClass="gatsby-resp-image-background-image"},5616:function(t,e,n){"use strict";var r=n(7688),o=r.DEFAULT_OPTIONS,i=r.imageClass,a=r.imageBackgroundClass,s=r.imageWrapperClass;e.onRouteUpdate=function(t,e){for(var n=Object.assign({},o,e),r=document.querySelectorAll("."+s),c=function(){var t=r[u],e=t.querySelector("."+a),o=t.querySelector("."+i),s=function(){e.style.transition="opacity 0.5s 0.5s",o.style.transition="opacity 0.5s",c()},c=function t(){e.style.opacity=0,o.style.opacity=1,o.style.color="inherit",o.style.boxShadow="inset 0px 0px 0px 400px "+n.backgroundColor,o.removeEventListener("load",s),o.removeEventListener("error",t)};o.style.opacity=0,o.addEventListener("load",s),o.addEventListener("error",c),o.complete&&c()},u=0;u1&&void 0!==arguments[1]?arguments[1]:{};this.init(t,e)}init(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=e.prefix||"i18next:",this.logger=t||o,this.options=e,this.debug=e.debug}log(){for(var t=arguments.length,e=new Array(t),n=0;n{this.observers[t]||(this.observers[t]=new Map);const n=this.observers[t].get(e)||0;this.observers[t].set(e,n+1)})),this}off(t,e){this.observers[t]&&(e?this.observers[t].delete(e):delete this.observers[t])}emit(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r{let[e,r]=t;for(let o=0;o{let[r,o]=e;for(let i=0;i{t=n,e=r}));return n.resolve=t,n.reject=e,n}function u(t){return null==t?"":""+t}const l=/###/g;function f(t,e,n){function r(t){return t&&t.indexOf("###")>-1?t.replace(l,"."):t}function o(){return!t||"string"==typeof t}const i="string"!=typeof e?e:e.split(".");let a=0;for(;a":">",'"':""","'":"'","/":"/"};function y(t){return"string"==typeof t?t.replace(/[&<>"'\/]/g,(t=>m[t])):t}const v=[" ",",","?","!",";"],b=new class{constructor(t){this.capacity=t,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(t){const e=this.regExpMap.get(t);if(void 0!==e)return e;const n=new RegExp(t);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(t,n),this.regExpQueue.push(t),n}}(20);function w(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".";if(!t)return;if(t[e])return t[e];const r=e.split(n);let o=t;for(let i=0;i-1&&a0?t.replace("_","-"):t}class S extends s{constructor(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};super(),this.data=t||{},this.options=e,void 0===this.options.keySeparator&&(this.options.keySeparator="."),void 0===this.options.ignoreJSONStructure&&(this.options.ignoreJSONStructure=!0)}addNamespaces(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)}removeNamespaces(t){const e=this.options.ns.indexOf(t);e>-1&&this.options.ns.splice(e,1)}getResource(t,e,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const o=void 0!==r.keySeparator?r.keySeparator:this.options.keySeparator,i=void 0!==r.ignoreJSONStructure?r.ignoreJSONStructure:this.options.ignoreJSONStructure;let a;t.indexOf(".")>-1?a=t.split("."):(a=[t,e],n&&(Array.isArray(n)?a.push(...n):"string"==typeof n&&o?a.push(...n.split(o)):a.push(n)));const s=h(this.data,a);return!s&&!e&&!n&&t.indexOf(".")>-1&&(t=a[0],e=a[1],n=a.slice(2).join(".")),s||!i||"string"!=typeof n?s:w(this.data&&this.data[t]&&this.data[t][e],n,o)}addResource(t,e,n,r){let o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1};const i=void 0!==o.keySeparator?o.keySeparator:this.options.keySeparator;let a=[t,e];n&&(a=a.concat(i?n.split(i):n)),t.indexOf(".")>-1&&(a=t.split("."),r=e,e=a[1]),this.addNamespaces(e),p(this.data,a,r),o.silent||this.emit("added",t,e,n,r)}addResources(t,e,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(const o in n)"string"!=typeof n[o]&&"[object Array]"!==Object.prototype.toString.apply(n[o])||this.addResource(t,e,o,n[o],{silent:!0});r.silent||this.emit("added",t,e,n)}addResourceBundle(t,e,n,r,o){let i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1,skipCopy:!1},a=[t,e];t.indexOf(".")>-1&&(a=t.split("."),r=n,n=e,e=a[1]),this.addNamespaces(e);let s=h(this.data,a)||{};i.skipCopy||(n=JSON.parse(JSON.stringify(n))),r?d(s,n,o):s={...s,...n},p(this.data,a,s),i.silent||this.emit("added",t,e,n)}removeResourceBundle(t,e){this.hasResourceBundle(t,e)&&delete this.data[t][e],this.removeNamespaces(e),this.emit("removed",t,e)}hasResourceBundle(t,e){return void 0!==this.getResource(t,e)}getResourceBundle(t,e){return e||(e=this.options.defaultNS),"v1"===this.options.compatibilityAPI?{...this.getResource(t,e)}:this.getResource(t,e)}getDataByLanguage(t){return this.data[t]}hasLanguageSomeTranslations(t){const e=this.getDataByLanguage(t);return!!(e&&Object.keys(e)||[]).find((t=>e[t]&&Object.keys(e[t]).length>0))}toJSON(){return this.data}}var O={processors:{},addPostProcessor(t){this.processors[t.name]=t},handle(t,e,n,r,o){return t.forEach((t=>{this.processors[t]&&(e=this.processors[t].process(e,n,r,o))})),e}};const E={};class k extends s{constructor(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(),function(t,e,n){t.forEach((t=>{e[t]&&(n[t]=e[t])}))}(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],t,this),this.options=e,void 0===this.options.keySeparator&&(this.options.keySeparator="."),this.logger=a.create("translator")}changeLanguage(t){t&&(this.language=t)}exists(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};if(null==t)return!1;const n=this.resolve(t,e);return n&&void 0!==n.res}extractFromKey(t,e){let n=void 0!==e.nsSeparator?e.nsSeparator:this.options.nsSeparator;void 0===n&&(n=":");const r=void 0!==e.keySeparator?e.keySeparator:this.options.keySeparator;let o=e.ns||this.options.defaultNS||[];const i=n&&t.indexOf(n)>-1,a=!(this.options.userDefinedKeySeparator||e.keySeparator||this.options.userDefinedNsSeparator||e.nsSeparator||function(t,e,n){e=e||"",n=n||"";const r=v.filter((t=>e.indexOf(t)<0&&n.indexOf(t)<0));if(0===r.length)return!0;const o=b.getRegExp(`(${r.map((t=>"?"===t?"\\?":t)).join("|")})`);let i=!o.test(t);if(!i){const e=t.indexOf(n);e>0&&!o.test(t.substring(0,e))&&(i=!0)}return i}(t,n,r));if(i&&!a){const e=t.match(this.interpolator.nestingRegexp);if(e&&e.length>0)return{key:t,namespaces:o};const i=t.split(n);(n!==r||n===r&&this.options.ns.indexOf(i[0])>-1)&&(o=i.shift()),t=i.join(r)}return"string"==typeof o&&(o=[o]),{key:t,namespaces:o}}translate(t,e,n){if("object"!=typeof e&&this.options.overloadTranslationOptionHandler&&(e=this.options.overloadTranslationOptionHandler(arguments)),"object"==typeof e&&(e={...e}),e||(e={}),null==t)return"";Array.isArray(t)||(t=[String(t)]);const r=void 0!==e.returnDetails?e.returnDetails:this.options.returnDetails,o=void 0!==e.keySeparator?e.keySeparator:this.options.keySeparator,{key:i,namespaces:a}=this.extractFromKey(t[t.length-1],e),s=a[a.length-1],c=e.lng||this.language,u=e.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(c&&"cimode"===c.toLowerCase()){if(u){const t=e.nsSeparator||this.options.nsSeparator;return r?{res:`${s}${t}${i}`,usedKey:i,exactUsedKey:i,usedLng:c,usedNS:s,usedParams:this.getUsedParamsDetails(e)}:`${s}${t}${i}`}return r?{res:i,usedKey:i,exactUsedKey:i,usedLng:c,usedNS:s,usedParams:this.getUsedParamsDetails(e)}:i}const l=this.resolve(t,e);let f=l&&l.res;const p=l&&l.usedKey||i,h=l&&l.exactUsedKey||i,d=Object.prototype.toString.apply(f),g=void 0!==e.joinArrays?e.joinArrays:this.options.joinArrays,m=!this.i18nFormat||this.i18nFormat.handleAsObject;if(m&&f&&("string"!=typeof f&&"boolean"!=typeof f&&"number"!=typeof f)&&["[object Number]","[object Function]","[object RegExp]"].indexOf(d)<0&&("string"!=typeof g||"[object Array]"!==d)){if(!e.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const t=this.options.returnedObjectHandler?this.options.returnedObjectHandler(p,f,{...e,ns:a}):`key '${i} (${this.language})' returned an object instead of string.`;return r?(l.res=t,l.usedParams=this.getUsedParamsDetails(e),l):t}if(o){const t="[object Array]"===d,n=t?[]:{},r=t?h:p;for(const i in f)if(Object.prototype.hasOwnProperty.call(f,i)){const t=`${r}${o}${i}`;n[i]=this.translate(t,{...e,joinArrays:!1,ns:a}),n[i]===t&&(n[i]=f[i])}f=n}}else if(m&&"string"==typeof g&&"[object Array]"===d)f=f.join(g),f&&(f=this.extendTranslation(f,t,e,n));else{let r=!1,a=!1;const u=void 0!==e.count&&"string"!=typeof e.count,p=k.hasDefaultValue(e),h=u?this.pluralResolver.getSuffix(c,e.count,e):"",d=e.ordinal&&u?this.pluralResolver.getSuffix(c,e.count,{ordinal:!1}):"",g=u&&!e.ordinal&&0===e.count&&this.pluralResolver.shouldUseIntlApi(),m=g&&e[`defaultValue${this.options.pluralSeparator}zero`]||e[`defaultValue${h}`]||e[`defaultValue${d}`]||e.defaultValue;!this.isValidLookup(f)&&p&&(r=!0,f=m),this.isValidLookup(f)||(a=!0,f=i);const y=(e.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&a?void 0:f,v=p&&m!==f&&this.options.updateMissing;if(a||r||v){if(this.logger.log(v?"updateKey":"missingKey",c,s,i,v?m:f),o){const t=this.resolve(i,{...e,keySeparator:!1});t&&t.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let t=[];const n=this.languageUtils.getFallbackCodes(this.options.fallbackLng,e.lng||this.language);if("fallback"===this.options.saveMissingTo&&n&&n[0])for(let e=0;e{const o=p&&r!==f?r:y;this.options.missingKeyHandler?this.options.missingKeyHandler(t,s,n,o,v,e):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(t,s,n,o,v,e),this.emit("missingKey",t,s,n,f)};this.options.saveMissing&&(this.options.saveMissingPlurals&&u?t.forEach((t=>{const n=this.pluralResolver.getSuffixes(t,e);g&&e[`defaultValue${this.options.pluralSeparator}zero`]&&n.indexOf(`${this.options.pluralSeparator}zero`)<0&&n.push(`${this.options.pluralSeparator}zero`),n.forEach((n=>{r([t],i+n,e[`defaultValue${n}`]||m)}))})):r(t,i,m))}f=this.extendTranslation(f,t,e,l,n),a&&f===i&&this.options.appendNamespaceToMissingKey&&(f=`${s}:${i}`),(a||r)&&this.options.parseMissingKeyHandler&&(f="v1"!==this.options.compatibilityAPI?this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${s}:${i}`:i,r?f:void 0):this.options.parseMissingKeyHandler(f))}return r?(l.res=f,l.usedParams=this.getUsedParamsDetails(e),l):f}extendTranslation(t,e,n,r,o){var i=this;if(this.i18nFormat&&this.i18nFormat.parse)t=this.i18nFormat.parse(t,{...this.options.interpolation.defaultVariables,...n},n.lng||this.language||r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init({...n,interpolation:{...this.options.interpolation,...n.interpolation}});const a="string"==typeof t&&(n&&n.interpolation&&void 0!==n.interpolation.skipOnVariables?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let s;if(a){const e=t.match(this.interpolator.nestingRegexp);s=e&&e.length}let c=n.replace&&"string"!=typeof n.replace?n.replace:n;if(this.options.interpolation.defaultVariables&&(c={...this.options.interpolation.defaultVariables,...c}),t=this.interpolator.interpolate(t,c,n.lng||this.language,n),a){const e=t.match(this.interpolator.nestingRegexp);s<(e&&e.length)&&(n.nest=!1)}!n.lng&&"v1"!==this.options.compatibilityAPI&&r&&r.res&&(n.lng=r.usedLng),!1!==n.nest&&(t=this.interpolator.nest(t,(function(){for(var t=arguments.length,r=new Array(t),a=0;a1&&void 0!==arguments[1]?arguments[1]:{};return"string"==typeof t&&(t=[t]),t.forEach((t=>{if(this.isValidLookup(e))return;const s=this.extractFromKey(t,a),c=s.key;n=c;let u=s.namespaces;this.options.fallbackNS&&(u=u.concat(this.options.fallbackNS));const l=void 0!==a.count&&"string"!=typeof a.count,f=l&&!a.ordinal&&0===a.count&&this.pluralResolver.shouldUseIntlApi(),p=void 0!==a.context&&("string"==typeof a.context||"number"==typeof a.context)&&""!==a.context,h=a.lngs?a.lngs:this.languageUtils.toResolveHierarchy(a.lng||this.language,a.fallbackLng);u.forEach((t=>{this.isValidLookup(e)||(i=t,!E[`${h[0]}-${t}`]&&this.utils&&this.utils.hasLoadedNamespace&&!this.utils.hasLoadedNamespace(i)&&(E[`${h[0]}-${t}`]=!0,this.logger.warn(`key "${n}" for languages "${h.join(", ")}" won't get resolved as namespace "${i}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),h.forEach((n=>{if(this.isValidLookup(e))return;o=n;const i=[c];if(this.i18nFormat&&this.i18nFormat.addLookupKeys)this.i18nFormat.addLookupKeys(i,c,n,t,a);else{let t;l&&(t=this.pluralResolver.getSuffix(n,a.count,a));const e=`${this.options.pluralSeparator}zero`,r=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(l&&(i.push(c+t),a.ordinal&&0===t.indexOf(r)&&i.push(c+t.replace(r,this.options.pluralSeparator)),f&&i.push(c+e)),p){const n=`${c}${this.options.contextSeparator}${a.context}`;i.push(n),l&&(i.push(n+t),a.ordinal&&0===t.indexOf(r)&&i.push(n+t.replace(r,this.options.pluralSeparator)),f&&i.push(n+e))}}let s;for(;s=i.pop();)this.isValidLookup(e)||(r=s,e=this.getResource(n,t,s,a))})))}))})),{res:e,usedKey:n,exactUsedKey:r,usedLng:o,usedNS:i}}isValidLookup(t){return!(void 0===t||!this.options.returnNull&&null===t||!this.options.returnEmptyString&&""===t)}getResource(t,e,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(t,e,n,r):this.resourceStore.getResource(t,e,n,r)}getUsedParamsDetails(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const e=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],n=t.replace&&"string"!=typeof t.replace;let r=n?t.replace:t;if(n&&void 0!==t.count&&(r.count=t.count),this.options.interpolation.defaultVariables&&(r={...this.options.interpolation.defaultVariables,...r}),!n){r={...r};for(const t of e)delete r[t]}return r}static hasDefaultValue(t){const e="defaultValue";for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&e===n.substring(0,12)&&void 0!==t[n])return!0;return!1}}function j(t){return t.charAt(0).toUpperCase()+t.slice(1)}class P{constructor(t){this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=a.create("languageUtils")}getScriptPartFromCode(t){if(!(t=_(t))||t.indexOf("-")<0)return null;const e=t.split("-");return 2===e.length?null:(e.pop(),"x"===e[e.length-1].toLowerCase()?null:this.formatLanguageCode(e.join("-")))}getLanguagePartFromCode(t){if(!(t=_(t))||t.indexOf("-")<0)return t;const e=t.split("-");return this.formatLanguageCode(e[0])}formatLanguageCode(t){if("string"==typeof t&&t.indexOf("-")>-1){const e=["hans","hant","latn","cyrl","cans","mong","arab"];let n=t.split("-");return this.options.lowerCaseLng?n=n.map((t=>t.toLowerCase())):2===n.length?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),e.indexOf(n[1].toLowerCase())>-1&&(n[1]=j(n[1].toLowerCase()))):3===n.length&&(n[0]=n[0].toLowerCase(),2===n[1].length&&(n[1]=n[1].toUpperCase()),"sgn"!==n[0]&&2===n[2].length&&(n[2]=n[2].toUpperCase()),e.indexOf(n[1].toLowerCase())>-1&&(n[1]=j(n[1].toLowerCase())),e.indexOf(n[2].toLowerCase())>-1&&(n[2]=j(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}isSupportedCode(t){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(t=this.getLanguagePartFromCode(t)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(t)>-1}getBestMatchFromCodes(t){if(!t)return null;let e;return t.forEach((t=>{if(e)return;const n=this.formatLanguageCode(t);this.options.supportedLngs&&!this.isSupportedCode(n)||(e=n)})),!e&&this.options.supportedLngs&&t.forEach((t=>{if(e)return;const n=this.getLanguagePartFromCode(t);if(this.isSupportedCode(n))return e=n;e=this.options.supportedLngs.find((t=>t===n?t:t.indexOf("-")<0&&n.indexOf("-")<0?void 0:0===t.indexOf(n)?t:void 0))})),e||(e=this.getFallbackCodes(this.options.fallbackLng)[0]),e}getFallbackCodes(t,e){if(!t)return[];if("function"==typeof t&&(t=t(e)),"string"==typeof t&&(t=[t]),"[object Array]"===Object.prototype.toString.apply(t))return t;if(!e)return t.default||[];let n=t[e];return n||(n=t[this.getScriptPartFromCode(e)]),n||(n=t[this.formatLanguageCode(e)]),n||(n=t[this.getLanguagePartFromCode(e)]),n||(n=t.default),n||[]}toResolveHierarchy(t,e){const n=this.getFallbackCodes(e||this.options.fallbackLng||[],t),r=[],o=t=>{t&&(this.isSupportedCode(t)?r.push(t):this.logger.warn(`rejecting language code not found in supportedLngs: ${t}`))};return"string"==typeof t&&(t.indexOf("-")>-1||t.indexOf("_")>-1)?("languageOnly"!==this.options.load&&o(this.formatLanguageCode(t)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&o(this.getScriptPartFromCode(t)),"currentOnly"!==this.options.load&&o(this.getLanguagePartFromCode(t))):"string"==typeof t&&o(this.formatLanguageCode(t)),n.forEach((t=>{r.indexOf(t)<0&&o(this.formatLanguageCode(t))})),r}}let x=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],T={1:function(t){return Number(t>1)},2:function(t){return Number(1!=t)},3:function(t){return 0},4:function(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},5:function(t){return Number(0==t?0:1==t?1:2==t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5)},6:function(t){return Number(1==t?0:t>=2&&t<=4?1:2)},7:function(t){return Number(1==t?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},8:function(t){return Number(1==t?0:2==t?1:8!=t&&11!=t?2:3)},9:function(t){return Number(t>=2)},10:function(t){return Number(1==t?0:2==t?1:t<7?2:t<11?3:4)},11:function(t){return Number(1==t||11==t?0:2==t||12==t?1:t>2&&t<20?2:3)},12:function(t){return Number(t%10!=1||t%100==11)},13:function(t){return Number(0!==t)},14:function(t){return Number(1==t?0:2==t?1:3==t?2:3)},15:function(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2)},16:function(t){return Number(t%10==1&&t%100!=11?0:0!==t?1:2)},17:function(t){return Number(1==t||t%10==1&&t%100!=11?0:1)},18:function(t){return Number(0==t?0:1==t?1:2)},19:function(t){return Number(1==t?0:0==t||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3)},20:function(t){return Number(1==t?0:0==t||t%100>0&&t%100<20?1:2)},21:function(t){return Number(t%100==1?1:t%100==2?2:t%100==3||t%100==4?3:0)},22:function(t){return Number(1==t?0:2==t?1:(t<0||t>10)&&t%10==0?2:3)}};const C=["v1","v2","v3"],R=["v4"],A={zero:0,one:1,two:2,few:3,many:4,other:5};class N{constructor(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.languageUtils=t,this.options=e,this.logger=a.create("pluralResolver"),this.options.compatibilityJSON&&!R.includes(this.options.compatibilityJSON)||"undefined"!=typeof Intl&&Intl.PluralRules||(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=function(){const t={};return x.forEach((e=>{e.lngs.forEach((n=>{t[n]={numbers:e.nr,plurals:T[e.fc]}}))})),t}()}addRule(t,e){this.rules[t]=e}getRule(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.shouldUseIntlApi())try{return new Intl.PluralRules(_("dev"===t?"en":t),{type:e.ordinal?"ordinal":"cardinal"})}catch(n){return}return this.rules[t]||this.rules[this.languageUtils.getLanguagePartFromCode(t)]}needsPlural(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=this.getRule(t,e);return this.shouldUseIntlApi()?n&&n.resolvedOptions().pluralCategories.length>1:n&&n.numbers.length>1}getPluralFormsOfKey(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.getSuffixes(t,n).map((t=>`${e}${t}`))}getSuffixes(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=this.getRule(t,e);return n?this.shouldUseIntlApi()?n.resolvedOptions().pluralCategories.sort(((t,e)=>A[t]-A[e])).map((t=>`${this.options.prepend}${e.ordinal?`ordinal${this.options.prepend}`:""}${t}`)):n.numbers.map((n=>this.getSuffix(t,n,e))):[]}getSuffix(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=this.getRule(t,n);return r?this.shouldUseIntlApi()?`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:""}${r.select(e)}`:this.getSuffixRetroCompatible(r,e):(this.logger.warn(`no plural rule found for: ${t}`),"")}getSuffixRetroCompatible(t,e){const n=t.noAbs?t.plurals(e):t.plurals(Math.abs(e));let r=t.numbers[n];this.options.simplifyPluralSuffix&&2===t.numbers.length&&1===t.numbers[0]&&(2===r?r="plural":1===r&&(r=""));const o=()=>this.options.prepend&&r.toString()?this.options.prepend+r.toString():r.toString();return"v1"===this.options.compatibilityJSON?1===r?"":"number"==typeof r?`_plural_${r.toString()}`:o():"v2"===this.options.compatibilityJSON||this.options.simplifyPluralSuffix&&2===t.numbers.length&&1===t.numbers[0]?o():this.options.prepend&&n.toString()?this.options.prepend+n.toString():n.toString()}shouldUseIntlApi(){return!C.includes(this.options.compatibilityJSON)}}function D(t,e,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:".",o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],i=function(t,e,n){const r=h(t,n);return void 0!==r?r:h(e,n)}(t,e,n);return!i&&o&&"string"==typeof n&&(i=w(t,n,r),void 0===i&&(i=w(e,n,r))),i}class I{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.logger=a.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||(t=>t),this.init(t)}init(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t.interpolation||(t.interpolation={escapeValue:!0});const e=t.interpolation;this.escape=void 0!==e.escape?e.escape:y,this.escapeValue=void 0===e.escapeValue||e.escapeValue,this.useRawValueToEscape=void 0!==e.useRawValueToEscape&&e.useRawValueToEscape,this.prefix=e.prefix?g(e.prefix):e.prefixEscaped||"{{",this.suffix=e.suffix?g(e.suffix):e.suffixEscaped||"}}",this.formatSeparator=e.formatSeparator?e.formatSeparator:e.formatSeparator||",",this.unescapePrefix=e.unescapeSuffix?"":e.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":e.unescapeSuffix||"",this.nestingPrefix=e.nestingPrefix?g(e.nestingPrefix):e.nestingPrefixEscaped||g("$t("),this.nestingSuffix=e.nestingSuffix?g(e.nestingSuffix):e.nestingSuffixEscaped||g(")"),this.nestingOptionsSeparator=e.nestingOptionsSeparator?e.nestingOptionsSeparator:e.nestingOptionsSeparator||",",this.maxReplaces=e.maxReplaces?e.maxReplaces:1e3,this.alwaysFormat=void 0!==e.alwaysFormat&&e.alwaysFormat,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const t=(t,e)=>t&&t.source===e?(t.lastIndex=0,t):new RegExp(e,"g");this.regexp=t(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=t(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=t(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(t,e,n,r){let o,i,a;const s=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function c(t){return t.replace(/\$/g,"$$$$")}const l=t=>{if(t.indexOf(this.formatSeparator)<0){const o=D(e,s,t,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(o,void 0,n,{...r,...e,interpolationkey:t}):o}const o=t.split(this.formatSeparator),i=o.shift().trim(),a=o.join(this.formatSeparator).trim();return this.format(D(e,s,i,this.options.keySeparator,this.options.ignoreJSONStructure),a,n,{...r,...e,interpolationkey:i})};this.resetRegExp();const f=r&&r.missingInterpolationHandler||this.options.missingInterpolationHandler,p=r&&r.interpolation&&void 0!==r.interpolation.skipOnVariables?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:t=>c(t)},{regex:this.regexp,safeValue:t=>this.escapeValue?c(this.escape(t)):c(t)}].forEach((e=>{for(a=0;o=e.regex.exec(t);){const n=o[1].trim();if(i=l(n),void 0===i)if("function"==typeof f){const e=f(t,o,r);i="string"==typeof e?e:""}else if(r&&Object.prototype.hasOwnProperty.call(r,n))i="";else{if(p){i=o[0];continue}this.logger.warn(`missed to pass in variable ${n} for interpolating ${t}`),i=""}else"string"==typeof i||this.useRawValueToEscape||(i=u(i));const s=e.safeValue(i);if(t=t.replace(o[0],s),p?(e.regex.lastIndex+=i.length,e.regex.lastIndex-=o[0].length):e.regex.lastIndex=0,a++,a>=this.maxReplaces)break}})),t}nest(t,e){let n,r,o,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};function a(t,e){const n=this.nestingOptionsSeparator;if(t.indexOf(n)<0)return t;const r=t.split(new RegExp(`${n}[ ]*{`));let i=`{${r[1]}`;t=r[0],i=this.interpolate(i,o);const a=i.match(/'/g),s=i.match(/"/g);(a&&a.length%2==0&&!s||s.length%2!=0)&&(i=i.replace(/'/g,'"'));try{o=JSON.parse(i),e&&(o={...e,...o})}catch(c){return this.logger.warn(`failed parsing options string in nesting for key ${t}`,c),`${t}${n}${i}`}return delete o.defaultValue,t}for(;n=this.nestingRegexp.exec(t);){let s=[];o={...i},o=o.replace&&"string"!=typeof o.replace?o.replace:o,o.applyPostProcessor=!1,delete o.defaultValue;let c=!1;if(-1!==n[0].indexOf(this.formatSeparator)&&!/{.*}/.test(n[1])){const t=n[1].split(this.formatSeparator).map((t=>t.trim()));n[1]=t.shift(),s=t,c=!0}if(r=e(a.call(this,n[1].trim(),o),o),r&&n[0]===t&&"string"!=typeof r)return r;"string"!=typeof r&&(r=u(r)),r||(this.logger.warn(`missed to resolve ${n[1]} for nesting ${t}`),r=""),c&&(r=s.reduce(((t,e)=>this.format(t,e,i.lng,{...i,interpolationkey:n[1].trim()})),r.trim())),t=t.replace(n[0],r),this.regexp.lastIndex=0}return t}}function L(t){const e={};return function(n,r,o){const i=r+JSON.stringify(o);let a=e[i];return a||(a=t(_(r),o),e[i]=a),a(n)}}class M{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.logger=a.create("formatter"),this.options=t,this.formats={number:L(((t,e)=>{const n=new Intl.NumberFormat(t,{...e});return t=>n.format(t)})),currency:L(((t,e)=>{const n=new Intl.NumberFormat(t,{...e,style:"currency"});return t=>n.format(t)})),datetime:L(((t,e)=>{const n=new Intl.DateTimeFormat(t,{...e});return t=>n.format(t)})),relativetime:L(((t,e)=>{const n=new Intl.RelativeTimeFormat(t,{...e});return t=>n.format(t,e.range||"day")})),list:L(((t,e)=>{const n=new Intl.ListFormat(t,{...e});return t=>n.format(t)}))},this.init(t)}init(t){const e=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}}).interpolation;this.formatSeparator=e.formatSeparator?e.formatSeparator:e.formatSeparator||","}add(t,e){this.formats[t.toLowerCase().trim()]=e}addCached(t,e){this.formats[t.toLowerCase().trim()]=L(e)}format(t,e,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return e.split(this.formatSeparator).reduce(((t,e)=>{const{formatName:o,formatOptions:i}=function(t){let e=t.toLowerCase().trim();const n={};if(t.indexOf("(")>-1){const r=t.split("(");e=r[0].toLowerCase().trim();const o=r[1].substring(0,r[1].length-1);"currency"===e&&o.indexOf(":")<0?n.currency||(n.currency=o.trim()):"relativetime"===e&&o.indexOf(":")<0?n.range||(n.range=o.trim()):o.split(";").forEach((t=>{if(!t)return;const[e,...r]=t.split(":"),o=r.join(":").trim().replace(/^'+|'+$/g,"");n[e.trim()]||(n[e.trim()]=o),"false"===o&&(n[e.trim()]=!1),"true"===o&&(n[e.trim()]=!0),isNaN(o)||(n[e.trim()]=parseInt(o,10))}))}return{formatName:e,formatOptions:n}}(e);if(this.formats[o]){let e=t;try{const a=r&&r.formatParams&&r.formatParams[r.interpolationkey]||{},s=a.locale||a.lng||r.locale||r.lng||n;e=this.formats[o](t,s,{...i,...r,...a})}catch(a){this.logger.warn(a)}return e}return this.logger.warn(`there was no format function for ${o}`),t}),t)}}class F extends s{constructor(t,e,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};super(),this.backend=t,this.store=e,this.services=n,this.languageUtils=n.languageUtils,this.options=r,this.logger=a.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=r.maxParallelReads||10,this.readingCalls=0,this.maxRetries=r.maxRetries>=0?r.maxRetries:5,this.retryTimeout=r.retryTimeout>=1?r.retryTimeout:350,this.state={},this.queue=[],this.backend&&this.backend.init&&this.backend.init(n,r.backend,r)}queueLoad(t,e,n,r){const o={},i={},a={},s={};return t.forEach((t=>{let r=!0;e.forEach((e=>{const a=`${t}|${e}`;!n.reload&&this.store.hasResourceBundle(t,e)?this.state[a]=2:this.state[a]<0||(1===this.state[a]?void 0===i[a]&&(i[a]=!0):(this.state[a]=1,r=!1,void 0===i[a]&&(i[a]=!0),void 0===o[a]&&(o[a]=!0),void 0===s[e]&&(s[e]=!0)))})),r||(a[t]=!0)})),(Object.keys(o).length||Object.keys(i).length)&&this.queue.push({pending:i,pendingCount:Object.keys(i).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(o),pending:Object.keys(i),toLoadLanguages:Object.keys(a),toLoadNamespaces:Object.keys(s)}}loaded(t,e,n){const r=t.split("|"),o=r[0],i=r[1];e&&this.emit("failedLoading",o,i,e),n&&this.store.addResourceBundle(o,i,n,void 0,void 0,{skipCopy:!0}),this.state[t]=e?-1:2;const a={};this.queue.forEach((n=>{!function(t,e,n,r){const{obj:o,k:i}=f(t,e,Object);o[i]=o[i]||[],r&&(o[i]=o[i].concat(n)),r||o[i].push(n)}(n.loaded,[o],i),function(t,e){void 0!==t.pending[e]&&(delete t.pending[e],t.pendingCount--)}(n,t),e&&n.errors.push(e),0!==n.pendingCount||n.done||(Object.keys(n.loaded).forEach((t=>{a[t]||(a[t]={});const e=n.loaded[t];e.length&&e.forEach((e=>{void 0===a[t][e]&&(a[t][e]=!0)}))})),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())})),this.emit("loaded",a),this.queue=this.queue.filter((t=>!t.done))}read(t,e,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:this.retryTimeout,i=arguments.length>5?arguments[5]:void 0;if(!t.length)return i(null,{});if(this.readingCalls>=this.maxParallelReads)return void this.waitingReads.push({lng:t,ns:e,fcName:n,tried:r,wait:o,callback:i});this.readingCalls++;const a=(a,s)=>{if(this.readingCalls--,this.waitingReads.length>0){const t=this.waitingReads.shift();this.read(t.lng,t.ns,t.fcName,t.tried,t.wait,t.callback)}a&&s&&r{this.read.call(this,t,e,n,r+1,2*o,i)}),o):i(a,s)},s=this.backend[n].bind(this.backend);if(2!==s.length)return s(t,e,a);try{const n=s(t,e);n&&"function"==typeof n.then?n.then((t=>a(null,t))).catch(a):a(null,n)}catch(c){a(c)}}prepareLoading(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),r&&r();"string"==typeof t&&(t=this.languageUtils.toResolveHierarchy(t)),"string"==typeof e&&(e=[e]);const o=this.queueLoad(t,e,n,r);if(!o.toLoad.length)return o.pending.length||r(),null;o.toLoad.forEach((t=>{this.loadOne(t)}))}load(t,e,n){this.prepareLoading(t,e,{},n)}reload(t,e,n){this.prepareLoading(t,e,{reload:!0},n)}loadOne(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";const n=t.split("|"),r=n[0],o=n[1];this.read(r,o,"read",void 0,void 0,((n,i)=>{n&&this.logger.warn(`${e}loading namespace ${o} for language ${r} failed`,n),!n&&i&&this.logger.log(`${e}loaded namespace ${o} for language ${r}`,i),this.loaded(t,n,i)}))}saveMissing(t,e,n,r,o){let i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:()=>{};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(e))this.logger.warn(`did not save key "${n}" as the namespace "${e}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");else if(null!=n&&""!==n){if(this.backend&&this.backend.create){const c={...i,isUpdate:o},u=this.backend.create.bind(this.backend);if(u.length<6)try{let o;o=5===u.length?u(t,e,n,r,c):u(t,e,n,r),o&&"function"==typeof o.then?o.then((t=>a(null,t))).catch(a):a(null,o)}catch(s){a(s)}else u(t,e,n,r,a,c)}t&&t[0]&&this.store.addResource(t[0],e,n,r)}}}function U(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(t){let e={};if("object"==typeof t[1]&&(e=t[1]),"string"==typeof t[1]&&(e.defaultValue=t[1]),"string"==typeof t[2]&&(e.tDescription=t[2]),"object"==typeof t[2]||"object"==typeof t[3]){const n=t[3]||t[2];Object.keys(n).forEach((t=>{e[t]=n[t]}))}return e},interpolation:{escapeValue:!0,format:t=>t,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}}function z(t){return"string"==typeof t.ns&&(t.ns=[t.ns]),"string"==typeof t.fallbackLng&&(t.fallbackLng=[t.fallbackLng]),"string"==typeof t.fallbackNS&&(t.fallbackNS=[t.fallbackNS]),t.supportedLngs&&t.supportedLngs.indexOf("cimode")<0&&(t.supportedLngs=t.supportedLngs.concat(["cimode"])),t}function B(){}class H extends s{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0;var n;if(super(),this.options=z(t),this.services={},this.logger=a,this.modules={external:[]},n=this,Object.getOwnPropertyNames(Object.getPrototypeOf(n)).forEach((t=>{"function"==typeof n[t]&&(n[t]=n[t].bind(n))})),e&&!this.isInitialized&&!t.isClone){if(!this.options.initImmediate)return this.init(t,e),this;setTimeout((()=>{this.init(t,e)}),0)}}init(){var t=this;let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;this.isInitializing=!0,"function"==typeof e&&(n=e,e={}),!e.defaultNS&&!1!==e.defaultNS&&e.ns&&("string"==typeof e.ns?e.defaultNS=e.ns:e.ns.indexOf("translation")<0&&(e.defaultNS=e.ns[0]));const r=U();function o(t){return t?"function"==typeof t?new t:t:null}if(this.options={...r,...this.options,...z(e)},"v1"!==this.options.compatibilityAPI&&(this.options.interpolation={...r.interpolation,...this.options.interpolation}),void 0!==e.keySeparator&&(this.options.userDefinedKeySeparator=e.keySeparator),void 0!==e.nsSeparator&&(this.options.userDefinedNsSeparator=e.nsSeparator),!this.options.isClone){let e;this.modules.logger?a.init(o(this.modules.logger),this.options):a.init(null,this.options),this.modules.formatter?e=this.modules.formatter:"undefined"!=typeof Intl&&(e=M);const n=new P(this.options);this.store=new S(this.options.resources,this.options);const i=this.services;i.logger=a,i.resourceStore=this.store,i.languageUtils=n,i.pluralResolver=new N(n,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),!e||this.options.interpolation.format&&this.options.interpolation.format!==r.interpolation.format||(i.formatter=o(e),i.formatter.init(i,this.options),this.options.interpolation.format=i.formatter.format.bind(i.formatter)),i.interpolator=new I(this.options),i.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},i.backendConnector=new F(o(this.modules.backend),i.resourceStore,i,this.options),i.backendConnector.on("*",(function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o1?n-1:0),o=1;o{t.init&&t.init(this)}))}if(this.format=this.options.interpolation.format,n||(n=B),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const t=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);t.length>0&&"dev"!==t[0]&&(this.options.lng=t[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined");["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach((e=>{this[e]=function(){return t.store[e](...arguments)}}));["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach((e=>{this[e]=function(){return t.store[e](...arguments),t}}));const i=c(),s=()=>{const t=(t,e)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),i.resolve(e),n(t,e)};if(this.languages&&"v1"!==this.options.compatibilityAPI&&!this.isInitialized)return t(null,this.t.bind(this));this.changeLanguage(this.options.lng,t)};return this.options.resources||!this.options.initImmediate?s():setTimeout(s,0),i}loadResources(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:B;const n="string"==typeof t?t:this.language;if("function"==typeof t&&(e=t),!this.options.resources||this.options.partialBundledLanguages){if(n&&"cimode"===n.toLowerCase()&&(!this.options.preload||0===this.options.preload.length))return e();const t=[],r=e=>{if(!e)return;if("cimode"===e)return;this.services.languageUtils.toResolveHierarchy(e).forEach((e=>{"cimode"!==e&&t.indexOf(e)<0&&t.push(e)}))};if(n)r(n);else{this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach((t=>r(t)))}this.options.preload&&this.options.preload.forEach((t=>r(t))),this.services.backendConnector.load(t,this.options.ns,(t=>{t||this.resolvedLanguage||!this.language||this.setResolvedLanguage(this.language),e(t)}))}else e(null)}reloadResources(t,e,n){const r=c();return t||(t=this.languages),e||(e=this.options.ns),n||(n=B),this.services.backendConnector.reload(t,e,(t=>{r.resolve(),n(t)})),r}use(t){if(!t)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!t.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===t.type&&(this.modules.backend=t),("logger"===t.type||t.log&&t.warn&&t.error)&&(this.modules.logger=t),"languageDetector"===t.type&&(this.modules.languageDetector=t),"i18nFormat"===t.type&&(this.modules.i18nFormat=t),"postProcessor"===t.type&&O.addPostProcessor(t),"formatter"===t.type&&(this.modules.formatter=t),"3rdParty"===t.type&&this.modules.external.push(t),this}setResolvedLanguage(t){if(t&&this.languages&&!(["cimode","dev"].indexOf(t)>-1))for(let e=0;e-1)&&this.store.hasLanguageSomeTranslations(t)){this.resolvedLanguage=t;break}}}changeLanguage(t,e){var n=this;this.isLanguageChangingTo=t;const r=c();this.emit("languageChanging",t);const o=t=>{this.language=t,this.languages=this.services.languageUtils.toResolveHierarchy(t),this.resolvedLanguage=void 0,this.setResolvedLanguage(t)},i=(t,i)=>{i?(o(i),this.translator.changeLanguage(i),this.isLanguageChangingTo=void 0,this.emit("languageChanged",i),this.logger.log("languageChanged",i)):this.isLanguageChangingTo=void 0,r.resolve((function(){return n.t(...arguments)})),e&&e(t,(function(){return n.t(...arguments)}))},a=e=>{t||e||!this.services.languageDetector||(e=[]);const n="string"==typeof e?e:this.services.languageUtils.getBestMatchFromCodes(e);n&&(this.language||o(n),this.translator.language||this.translator.changeLanguage(n),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage&&this.services.languageDetector.cacheUserLanguage(n)),this.loadResources(n,(t=>{i(t,n)}))};return t||!this.services.languageDetector||this.services.languageDetector.async?!t&&this.services.languageDetector&&this.services.languageDetector.async?0===this.services.languageDetector.detect.length?this.services.languageDetector.detect().then(a):this.services.languageDetector.detect(a):a(t):a(this.services.languageDetector.detect()),r}getFixedT(t,e,n){var r=this;const o=function(t,e){let i;if("object"!=typeof e){for(var a=arguments.length,s=new Array(a>2?a-2:0),c=2;c`${i.keyPrefix}${u}${t}`)):i.keyPrefix?`${i.keyPrefix}${u}${t}`:t,r.t(l,i)};return"string"==typeof t?o.lng=t:o.lngs=t,o.ns=e,o.keyPrefix=n,o}t(){return this.translator&&this.translator.translate(...arguments)}exists(){return this.translator&&this.translator.exists(...arguments)}setDefaultNamespace(t){this.options.defaultNS=t}hasLoadedNamespace(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const n=e.lng||this.resolvedLanguage||this.languages[0],r=!!this.options&&this.options.fallbackLng,o=this.languages[this.languages.length-1];if("cimode"===n.toLowerCase())return!0;const i=(t,e)=>{const n=this.services.backendConnector.state[`${t}|${e}`];return-1===n||2===n};if(e.precheck){const t=e.precheck(this,i);if(void 0!==t)return t}return!!this.hasResourceBundle(n,t)||(!(this.services.backendConnector.backend&&(!this.options.resources||this.options.partialBundledLanguages))||!(!i(n,t)||r&&!i(o,t)))}loadNamespaces(t,e){const n=c();return this.options.ns?("string"==typeof t&&(t=[t]),t.forEach((t=>{this.options.ns.indexOf(t)<0&&this.options.ns.push(t)})),this.loadResources((t=>{n.resolve(),e&&e(t)})),n):(e&&e(),Promise.resolve())}loadLanguages(t,e){const n=c();"string"==typeof t&&(t=[t]);const r=this.options.preload||[],o=t.filter((t=>r.indexOf(t)<0));return o.length?(this.options.preload=r.concat(o),this.loadResources((t=>{n.resolve(),e&&e(t)})),n):(e&&e(),Promise.resolve())}dir(t){if(t||(t=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!t)return"rtl";const e=this.services&&this.services.languageUtils||new P(U());return["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"].indexOf(e.getLanguagePartFromCode(t))>-1||t.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(){return new H(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},arguments.length>1?arguments[1]:void 0)}cloneInstance(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:B;const n=t.forkResourceStore;n&&delete t.forkResourceStore;const r={...this.options,...t,isClone:!0},o=new H(r);void 0===t.debug&&void 0===t.prefix||(o.logger=o.logger.clone(t));return["store","services","language"].forEach((t=>{o[t]=this[t]})),o.services={...this.services},o.services.utils={hasLoadedNamespace:o.hasLoadedNamespace.bind(o)},n&&(o.store=new S(this.store.data,r),o.services.resourceStore=o.store),o.translator=new k(o.services,r),o.translator.on("*",(function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r{let{element:o,props:i}=t;const{i18nextOptions:a}=(0,V.withDefaults)(e),s=i.pageContext.locale;let c={};a.ns.forEach((t=>{const e=n(262)("./"+s+"/"+t+".json");c={...c,[s]:{...c[s],[t]:e}}}));const u={lng:s,resources:c,...a};return $.init(u),r.createElement(q.xC,{i18n:$},o)}},9568:function(t){const e="translation";t.exports={defaultNamespace:e,withDefaults:function(t){return{...t,i18nextOptions:{defaultNS:e,ns:[e],fallbackLng:"en",initImmediate:!1,...t.i18nextOptions,interpolation:{escapeValue:!1,...t.i18nextOptions.interpolation}}}}}},1887:function(t,e,n){"use strict";n.r(e),n.d(e,{wrapPageElement:function(){return u}});var r=n(6540),o=n(7514),i=n(8154),a=n(4194),s=n(9455);const c=t=>{let{location:e,pageContext:n}=t;const{locale:o,config:c,defaultLang:u}=(0,s.B)(),l=(0,a.useStaticQuery)("1239077767").site.siteMetadata.siteUrl,{pathname:f}=e;return r.createElement(i.m,null,r.createElement("html",{lang:n.hrefLang}),r.createElement("link",{rel:"alternate",hrefLang:"x-default",href:l}),r.createElement("link",{rel:"alternate",hrefLang:n.hrefLang,href:""+l+(f===(0,a.withPrefix)("/")?"":f)}),c.map((t=>{let e;return t.code===o?null:(e=t.code===u?""+l+(n.originalPath===(0,a.withPrefix)("/")?"":n.originalPath):""+l+(0,a.withPrefix)("/"+t.code+n.originalPath),r.createElement("link",{key:t.code,rel:"alternate",hrefLang:t.hrefLang,href:e}))})),r.createElement("meta",{property:"og:locale",content:n.hrefLang.replace("-","_")}),c.map((t=>t.code===o?null:r.createElement("meta",{key:t.code,property:"og:locale:alternate",content:t.hrefLang.replace("-","_")}))))},u=t=>{let{element:e,props:n}=t;return r.createElement(o.Y,{pageContext:n.pageContext},r.createElement(c,{location:n.location,pageContext:n.pageContext}),e)}},2227:function(t,e,n){"use strict";n.d(e,{c_:function(){return s}});n(7514);var r=n(6540),o=n(4194),i=n(8040),a=n(9455);const s=t=>{let{to:e,language:n,...s}=t;const{defaultLang:c,prefixDefault:u,locale:l}=(0,a.B)(),f=n||l;return r.createElement(o.Link,Object.assign({},s,{to:(0,i.localizedPath)({defaultLang:c,prefixDefault:u,locale:f,path:e})}))};n(6462)},7514:function(t,e,n){"use strict";n.d(e,{U:function(){return i},Y:function(){return a}});var r=n(6540),o=n(6792);const i=r.createContext(o.defaultLang),a=t=>{let{children:e,pageContext:{locale:n=o.defaultLang}}=t;return r.createElement(i.Provider,{value:n},e)}},8040:function(t){t.exports={localizedPath:function(t){let{defaultLang:e,prefixDefault:n,locale:r,path:o}=t;if(function(t,e){return t===e}(r,e)&&!n)return o;const[,i]=o.split("/");return i===r?o:"/"+r+o},getLanguages:function(t){let{locales:e,localeStr:n}=t;if(!n)return e;const r=n.split(" "),o=[];for(const i of r){const t=e.find((t=>t.code===i));if(!t)throw new Error("Invalid localed provided: "+i+". See your i18n config file for a list of available locales.");o.push(t)}return o},getDefaultLanguage:function(t){let{locales:e,defaultLang:n}=t;return e.find((t=>t.code===n))}}},9455:function(t,e,n){"use strict";n.d(e,{B:function(){return s}});var r=n(6540),o=n(7514),i=n(4194),a=n(8040);const s=()=>{const t=r.useContext(o.U),{themeI18N:{defaultLang:e,prefixDefault:n,config:s}}=(0,i.useStaticQuery)("3280999885");return{locale:t,defaultLang:e,prefixDefault:n,config:s,localizedPath:a.localizedPath}}},6792:function(t){t.exports={defaultLang:"en",withDefaults:function(t){return{...t,configPath:t.configPath,defaultLang:t.defaultLang||"en",prefixDefault:!!t.prefixDefault&&t.prefixDefault,locales:t.locales||null}}}},9540:function(t,e,n){"use strict";n.d(e,{K:function(){return r}});const r=!0},5683:function(t,e,n){"use strict";n.r(e),n.d(e,{wrapRootElement:function(){return f}});var r=n(6540),o=n(7134),i=n(2389),a=n(6711),s=n(6348),c=n(1143);function u(t){let{children:e}=t;const{t:n}=(0,i.Bd)("modal-get-in-touch");return r.createElement("div",{className:"moda-main"},r.createElement("br",null),r.createElement("div",null,r.createElement(a.e,{href:"https://t.me/"+c.Nt},r.createElement(s.A,{variant:"gradient",size:"static"},"Telegram: @",c.Nt))),r.createElement("br",null),r.createElement("div",null,r.createElement(a.e,{href:"mailto:"+c.Rp},r.createElement(s.A,{variant:"gradient",size:"static"},"Email: ",c.Rp))))}function l(t){let{children:e}=t;const[n,i]=(0,o.uD)();(0,r.useEffect)((()=>{n?document.body.classList.add("no-scroll"):document.body.classList.remove("no-scroll")}),[n]);return r.createElement(o.Ay,{id:"GetInTouchModal",consumer:e,isOpen:n,setOpen:i,draggable:!1,duration:300,width:300,height:250,radius:10},r.createElement(u,null))}const f=t=>{let{element:e}=t;const n=[l];return r.createElement(o.Zn,{value:n},e)}},46:function(t,e,n){"use strict";n.r(e),n.d(e,{wrapRootElement:function(){return _i}});var r={};n.r(r),n.d(r,{hasBrowserEnv:function(){return xr},hasStandardBrowserEnv:function(){return Tr},hasStandardBrowserWebWorkerEnv:function(){return Rr}});var o={};n.r(o),n.d(o,{exclude:function(){return qo},extract:function(){return Fo},parse:function(){return Uo},parseUrl:function(){return Bo},pick:function(){return $o},stringify:function(){return zo},stringifyUrl:function(){return Ho}});var i=n(6540),a=n(1468);function s(t){return`Minified Redux error #${t}; visit https://redux.js.org/Errors?code=${t} for the full message or use the non-minified dev environment for full errors. `}var c=(()=>"function"==typeof Symbol&&Symbol.observable||"@@observable")(),u=()=>Math.random().toString(36).substring(7).split("").join("."),l={INIT:`@@redux/INIT${u()}`,REPLACE:`@@redux/REPLACE${u()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${u()}`};function f(t){if("object"!=typeof t||null===t)return!1;let e=t;for(;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e||null===Object.getPrototypeOf(t)}function p(t,e,n){if("function"!=typeof t)throw new Error(s(2));if("function"==typeof e&&"function"==typeof n||"function"==typeof n&&"function"==typeof arguments[3])throw new Error(s(0));if("function"==typeof e&&void 0===n&&(n=e,e=void 0),void 0!==n){if("function"!=typeof n)throw new Error(s(1));return n(p)(t,e)}let r=t,o=e,i=new Map,a=i,u=0,h=!1;function d(){a===i&&(a=new Map,i.forEach(((t,e)=>{a.set(e,t)})))}function g(){if(h)throw new Error(s(3));return o}function m(t){if("function"!=typeof t)throw new Error(s(4));if(h)throw new Error(s(5));let e=!0;d();const n=u++;return a.set(n,t),function(){if(e){if(h)throw new Error(s(6));e=!1,d(),a.delete(n),i=null}}}function y(t){if(!f(t))throw new Error(s(7));if(void 0===t.type)throw new Error(s(8));if("string"!=typeof t.type)throw new Error(s(17));if(h)throw new Error(s(9));try{h=!0,o=r(o,t)}finally{h=!1}return(i=a).forEach((t=>{t()})),t}y({type:l.INIT});return{dispatch:y,subscribe:m,getState:g,replaceReducer:function(t){if("function"!=typeof t)throw new Error(s(10));r=t,y({type:l.REPLACE})},[c]:function(){const t=m;return{subscribe(e){if("object"!=typeof e||null===e)throw new Error(s(11));function n(){const t=e;t.next&&t.next(g())}n();return{unsubscribe:t(n)}},[c](){return this}}}}}function h(t){const e=Object.keys(t),n={};for(let a=0;a{const n=t[e];if(void 0===n(void 0,{type:l.INIT}))throw new Error(s(12));if(void 0===n(void 0,{type:l.PROBE_UNKNOWN_ACTION()}))throw new Error(s(13))}))}(n)}catch(i){o=i}return function(t={},e){if(o)throw o;let i=!1;const a={};for(let o=0;ot:1===t.length?t[0]:t.reduce(((t,e)=>(...n)=>t(e(...n))))}function g(...t){return e=>(n,r)=>{const o=e(n,r);let i=()=>{throw new Error(s(15))};const a={getState:o.getState,dispatch:(t,...e)=>i(t,...e)},c=t.map((t=>t(a)));return i=d(...c)(o.dispatch),{...o,dispatch:i}}}var m="persist:",y="persist/FLUSH",v="persist/REHYDRATE",b="persist/PAUSE",w="persist/PERSIST",_="persist/PURGE",S="persist/REGISTER";function O(t){return O="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},O(t)}function E(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function k(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function j(t,e,n,r){r.debug;var o=function(t){for(var e=1;e=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function L(t,e){var n=void 0!==t.version?t.version:-1,r=(t.debug,void 0===t.stateReconciler?j:t.stateReconciler),o=t.getStoredState||T,i=void 0!==t.timeout?t.timeout:5e3,a=null,s=!1,c=!0,u=function(t){return t._persist.rehydrated&&a&&!c&&a.update(t),t};return function(l,f){var p=l||{},h=p._persist,d=I(p,["_persist"]);if(f.type===w){var g=!1,S=function(e,n){g||(f.rehydrate(t.key,e,n),g=!0)};if(i&&setTimeout((function(){!g&&S(void 0,new Error('redux-persist: persist timed out for persist key "'.concat(t.key,'"')))}),i),c=!1,a||(a=P(t)),h)return N({},e(d,f),{_persist:h});if("function"!=typeof f.rehydrate||"function"!=typeof f.register)throw new Error("redux-persist: either rehydrate or register is not a function on the PERSIST action. This can happen if the action is being replayed. This is an unexplored use case, please open an issue and we will figure out a resolution.");return f.register(t.key),o(t).then((function(e){(t.migrate||function(t,e){return Promise.resolve(t)})(e,n).then((function(t){S(t)}),(function(t){S(void 0,t)}))}),(function(t){S(void 0,t)})),N({},e(d,f),{_persist:{version:n,rehydrated:!1}})}if(f.type===_)return s=!0,f.result(function(t){var e=t.storage,n="".concat(void 0!==t.keyPrefix?t.keyPrefix:m).concat(t.key);return e.removeItem(n,R)}(t)),N({},e(d,f),{_persist:h});if(f.type===y)return f.result(a&&a.flush()),N({},e(d,f),{_persist:h});if(f.type===b)c=!0;else if(f.type===v){if(s)return N({},d,{_persist:N({},h,{rehydrated:!0})});if(f.key===t.key){var O=e(d,f),E=f.payload,k=N({},!1!==r&&void 0!==E?r(E,l,O,t):O,{_persist:N({},h,{rehydrated:!0})});return u(k)}}if(!h)return e(l,f);var j=e(d,f);return j===d?l:u(N({},j,{_persist:h}))}}function M(t){return function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e0&&void 0!==arguments[0]?arguments[0]:B,e=arguments.length>1?arguments[1]:void 0;switch(e.type){case S:return U({},t,{registry:[].concat(M(t.registry),[e.key])});case v:var n=t.registry.indexOf(e.key),r=M(t.registry);return r.splice(n,1),U({},t,{registry:r,bootstrapped:0===r.length});default:return t}};var $=n(9282),q=n(7639),V=n(9448),W=function(t){return"@@redux-saga/"+t},K=W("CANCEL_PROMISE"),J=W("CHANNEL_END"),G=W("IO"),Y=W("MATCH"),X=W("MULTICAST"),Q=W("SAGA_ACTION"),Z=W("SELF_CANCELLATION"),tt=W("TASK"),et=W("TASK_CANCEL"),nt=W("TERMINATE"),rt=W("LOCATION");function ot(){return ot=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0&&t.splice(n,1)}var St=function(t){throw t},Ot=function(t){return{value:t,done:!0}};function Et(t,e,n){void 0===e&&(e=St),void 0===n&&(n="iterator");var r={meta:{name:n},next:t,throw:e,return:Ot,isSagaIterator:!0};return"undefined"!=typeof Symbol&&(r[Symbol.iterator]=function(){return r}),r}function kt(t,e){var n=e.sagaStack;console.error(t),console.error(n)}var jt=function(t){return Array.apply(null,new Array(t))},Pt=function(t){return function(e){return t(Object.defineProperty(e,Q,{value:!0}))}},xt=function(t){return t===nt},Tt=function(t){return t===et},Ct=function(t){return xt(t)||Tt(t)};function Rt(t,e){var n=Object.keys(t),r=n.length;var o,i=0,a=ut(t)?jt(r):{},s={};return n.forEach((function(t){var n=function(n,s){o||(s||Ct(n)?(e.cancel(),e(n,s)):(a[t]=n,++i===r&&(o=!0,e(a))))};n.cancel=vt,s[t]=n})),e.cancel=function(){o||(o=!0,n.forEach((function(t){return s[t].cancel()})))},s}function At(t){return{name:t.name||"anonymous",location:Nt(t)}}function Nt(t){return t[rt]}function Dt(){for(var t=arguments.length,e=new Array(t),n=0;n1?e-1:0),r=1;r1?e-1:0),r=1;r2?p-2:0),d=2;d=0||(o[n]=t[n]);return o}(n,["context","channel","sagaMonitor"]);function u(t){var n=t.getState,r=t.dispatch;return e=Ve.bind(null,ot({},c,{context:o,channel:a,dispatch:r,getState:n,sagaMonitor:s})),function(t){return function(e){s&&s.actionDispatched&&s.actionDispatched(e);var n=t(e);return a.put(e),n}}}return u.run=function(){return e.apply(void 0,arguments)},u.setContext=function(t){wt(o,t)},u},Ke=We,Je=n(9540);const Ge=Ke();var Ye=function(t){void 0===t&&(t=!1);let e=!1;const n=[];n.push(Ge),t&&(Je.K||(n.push((0,V.createLogger)({collapsed:!0})),e="object"==typeof window&&window.__REDUX_DEVTOOLS_EXTENSION__?window.__REDUX_DEVTOOLS_EXTENSION__():null));const r=[];return r.push(g.apply(void 0,n)),d.apply(void 0,r)},Xe=n(3888);const Qe="@@rehydrate/CLEAR",Ze="@@rehydrate/SET_PERSIST_REHYDRATE",tn={ref:!1,theme:!1};var en=function(t,e){void 0===t&&(t=tn),void 0===e&&(e={});const{type:n,payload:r}=e;switch(n){case Qe:return tn;case Ze:return(0,Xe.Oe)(t,[r],!0);default:return t}},nn=n(3971),rn=n(8865);const on={theme:rn.Hk};var an=function(t,e){void 0===t&&(t=on),void 0===e&&(e={});const{type:n,payload:r}=e;switch(n){case nn.uJ:return on;case nn.rK:return rn.Zj.includes(r)?(0,Xe.Oe)(t,["theme"],r):t;default:return t}},sn=n(3633);const cn={isOpen:!1};var un=function(t,e){void 0===t&&(t=cn),void 0===e&&(e={});const{type:n,payload:r}=e;switch(n){case sn.uJ:return cn;case sn.DR:return(0,Xe.Oe)(t,["isOpen"],!t.isOpen);case sn.rK:return(0,Xe.Oe)(t,["isOpen"],r);default:return t}};var ln=()=>h({rehydrate:en,theme:L({key:"theme",storage:$.A,stateReconciler:q.A},an),mobileMenu:un}),fn=function(t){return{done:!0,value:t}},pn={};function hn(t){return ht(t)?"channel":dt(t)?String(t):st(t)?t.name:String(t)}function dn(t,e,n){var r,o,i,a=e;function s(e,n){if(a===pn)return fn(e);if(n&&!o)throw a=pn,n;r&&r(e);var s=n?t[o](n):t[a]();return a=s.nextState,i=s.effect,r=s.stateUpdater,o=s.errorState,a===pn?fn(e):i}return Et(s,(function(t){return s(null,t)}),n)}function gn(t,e){for(var n=arguments.length,r=new Array(n>2?n-2:0),o=2;o2?n-2:0),o=2;o2?n-2:0),o=2;o{let e=!0;for(let n in t[wn])t[wn][n]||(e=!1);return e};var Sn=()=>({clearSaga:function*(){yield te({type:Qe})},updateSaga:function*(t){try{if(t&&t.key){yield te((e=t.key,{type:Ze,payload:e}));const n=yield function(t){void 0===t&&(t=bt);for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r{const{clearSaga:t,updateSaga:e}=Sn();return function*(){yield bn(Qe,t),yield mn("persist/REHYDRATE",e),yield mn("@@rehydrate/UPDATE",e)}},En=n(1289);n(7568);var kn=()=>{const{clearSaga:t,toggleSaga:e}={clearSaga:function*(){yield te(En.IU())}};return function*(){yield bn(sn.uJ,t)}};const jn="sagas/rootSaga";function*Pn(t){const e=[ne(xn),re(On()),re(kn())];var n,r;yield(n=e,r=Qt(Ut,n),r.combinator=!0,r)}function*xn(){try{const t="background: white; color: black; font-size: 48px;",e="font-size: 18px;";console.log("========================================================================================"),console.log("%c Version "+yn.CU,e),console.log("========================================================================================"),console.log("%c "+yn.JB+" ",t),console.log("========================================================================================"),console.log("%c This browser feature is intended for developers.",e),console.log("%c If someone told you to copy-paste something here,",e),console.log("%c it is a scam and will give them access to your money!",e),console.log("========================================================================================")}catch(t){console.error(jn,"welcomeSaga()",t)}yield!0}function Tn(t,e){return function(){return t.apply(e,arguments)}}const{toString:Cn}=Object.prototype,{getPrototypeOf:Rn}=Object,An=(Nn=Object.create(null),t=>{const e=Cn.call(t);return Nn[e]||(Nn[e]=e.slice(8,-1).toLowerCase())});var Nn;const Dn=t=>(t=t.toLowerCase(),e=>An(e)===t),In=t=>e=>typeof e===t,{isArray:Ln}=Array,Mn=In("undefined");const Fn=Dn("ArrayBuffer");const Un=In("string"),zn=In("function"),Bn=In("number"),Hn=t=>null!==t&&"object"==typeof t,$n=t=>{if("object"!==An(t))return!1;const e=Rn(t);return!(null!==e&&e!==Object.prototype&&null!==Object.getPrototypeOf(e)||Symbol.toStringTag in t||Symbol.iterator in t)},qn=Dn("Date"),Vn=Dn("File"),Wn=Dn("Blob"),Kn=Dn("FileList"),Jn=Dn("URLSearchParams");function Gn(t,e,{allOwnKeys:n=!1}={}){if(null==t)return;let r,o;if("object"!=typeof t&&(t=[t]),Ln(t))for(r=0,o=t.length;r0;)if(r=n[o],e===r.toLowerCase())return r;return null}const Xn="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,Qn=t=>!Mn(t)&&t!==Xn;const Zn=(tr="undefined"!=typeof Uint8Array&&Rn(Uint8Array),t=>tr&&t instanceof tr);var tr;const er=Dn("HTMLFormElement"),nr=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),rr=Dn("RegExp"),or=(t,e)=>{const n=Object.getOwnPropertyDescriptors(t),r={};Gn(n,((n,o)=>{let i;!1!==(i=e(n,o,t))&&(r[o]=i||n)})),Object.defineProperties(t,r)},ir="abcdefghijklmnopqrstuvwxyz",ar="0123456789",sr={DIGIT:ar,ALPHA:ir,ALPHA_DIGIT:ir+ir.toUpperCase()+ar};const cr=Dn("AsyncFunction");var ur={isArray:Ln,isArrayBuffer:Fn,isBuffer:function(t){return null!==t&&!Mn(t)&&null!==t.constructor&&!Mn(t.constructor)&&zn(t.constructor.isBuffer)&&t.constructor.isBuffer(t)},isFormData:t=>{let e;return t&&("function"==typeof FormData&&t instanceof FormData||zn(t.append)&&("formdata"===(e=An(t))||"object"===e&&zn(t.toString)&&"[object FormData]"===t.toString()))},isArrayBufferView:function(t){let e;return e="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&Fn(t.buffer),e},isString:Un,isNumber:Bn,isBoolean:t=>!0===t||!1===t,isObject:Hn,isPlainObject:$n,isUndefined:Mn,isDate:qn,isFile:Vn,isBlob:Wn,isRegExp:rr,isFunction:zn,isStream:t=>Hn(t)&&zn(t.pipe),isURLSearchParams:Jn,isTypedArray:Zn,isFileList:Kn,forEach:Gn,merge:function t(){const{caseless:e}=Qn(this)&&this||{},n={},r=(r,o)=>{const i=e&&Yn(n,o)||o;$n(n[i])&&$n(r)?n[i]=t(n[i],r):$n(r)?n[i]=t({},r):Ln(r)?n[i]=r.slice():n[i]=r};for(let o=0,i=arguments.length;o(Gn(e,((e,r)=>{n&&zn(e)?t[r]=Tn(e,n):t[r]=e}),{allOwnKeys:r}),t),trim:t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:t=>(65279===t.charCodeAt(0)&&(t=t.slice(1)),t),inherits:(t,e,n,r)=>{t.prototype=Object.create(e.prototype,r),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n)},toFlatObject:(t,e,n,r)=>{let o,i,a;const s={};if(e=e||{},null==t)return e;do{for(o=Object.getOwnPropertyNames(t),i=o.length;i-- >0;)a=o[i],r&&!r(a,t,e)||s[a]||(e[a]=t[a],s[a]=!0);t=!1!==n&&Rn(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},kindOf:An,kindOfTest:Dn,endsWith:(t,e,n)=>{t=String(t),(void 0===n||n>t.length)&&(n=t.length),n-=e.length;const r=t.indexOf(e,n);return-1!==r&&r===n},toArray:t=>{if(!t)return null;if(Ln(t))return t;let e=t.length;if(!Bn(e))return null;const n=new Array(e);for(;e-- >0;)n[e]=t[e];return n},forEachEntry:(t,e)=>{const n=(t&&t[Symbol.iterator]).call(t);let r;for(;(r=n.next())&&!r.done;){const n=r.value;e.call(t,n[0],n[1])}},matchAll:(t,e)=>{let n;const r=[];for(;null!==(n=t.exec(e));)r.push(n);return r},isHTMLForm:er,hasOwnProperty:nr,hasOwnProp:nr,reduceDescriptors:or,freezeMethods:t=>{or(t,((e,n)=>{if(zn(t)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=t[n];zn(r)&&(e.enumerable=!1,"writable"in e?e.writable=!1:e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))}))},toObjectSet:(t,e)=>{const n={},r=t=>{t.forEach((t=>{n[t]=!0}))};return Ln(t)?r(t):r(String(t).split(e)),n},toCamelCase:t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(t,e,n){return e.toUpperCase()+n})),noop:()=>{},toFiniteNumber:(t,e)=>(t=+t,Number.isFinite(t)?t:e),findKey:Yn,global:Xn,isContextDefined:Qn,ALPHABET:sr,generateString:(t=16,e=sr.ALPHA_DIGIT)=>{let n="";const{length:r}=e;for(;t--;)n+=e[Math.random()*r|0];return n},isSpecCompliantForm:function(t){return!!(t&&zn(t.append)&&"FormData"===t[Symbol.toStringTag]&&t[Symbol.iterator])},toJSONObject:t=>{const e=new Array(10),n=(t,r)=>{if(Hn(t)){if(e.indexOf(t)>=0)return;if(!("toJSON"in t)){e[r]=t;const o=Ln(t)?[]:{};return Gn(t,((t,e)=>{const i=n(t,r+1);!Mn(i)&&(o[e]=i)})),e[r]=void 0,o}}return t};return n(t,0)},isAsyncFn:cr,isThenable:t=>t&&(Hn(t)||zn(t))&&zn(t.then)&&zn(t.catch)};function lr(t,e,n,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name="AxiosError",e&&(this.code=e),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o)}ur.inherits(lr,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:ur.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const fr=lr.prototype,pr={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((t=>{pr[t]={value:t}})),Object.defineProperties(lr,pr),Object.defineProperty(fr,"isAxiosError",{value:!0}),lr.from=(t,e,n,r,o,i)=>{const a=Object.create(fr);return ur.toFlatObject(t,a,(function(t){return t!==Error.prototype}),(t=>"isAxiosError"!==t)),lr.call(a,t.message,e,n,r,o),a.cause=t,a.name=t.name,i&&Object.assign(a,i),a};var hr=lr;function dr(t){return ur.isPlainObject(t)||ur.isArray(t)}function gr(t){return ur.endsWith(t,"[]")?t.slice(0,-2):t}function mr(t,e,n){return t?t.concat(e).map((function(t,e){return t=gr(t),!n&&e?"["+t+"]":t})).join(n?".":""):e}const yr=ur.toFlatObject(ur,{},null,(function(t){return/^is[A-Z]/.test(t)}));var vr=function(t,e,n){if(!ur.isObject(t))throw new TypeError("target must be an object");e=e||new FormData;const r=(n=ur.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(t,e){return!ur.isUndefined(e[t])}))).metaTokens,o=n.visitor||u,i=n.dots,a=n.indexes,s=(n.Blob||"undefined"!=typeof Blob&&Blob)&&ur.isSpecCompliantForm(e);if(!ur.isFunction(o))throw new TypeError("visitor must be a function");function c(t){if(null===t)return"";if(ur.isDate(t))return t.toISOString();if(!s&&ur.isBlob(t))throw new hr("Blob is not supported. Use a Buffer instead.");return ur.isArrayBuffer(t)||ur.isTypedArray(t)?s&&"function"==typeof Blob?new Blob([t]):Buffer.from(t):t}function u(t,n,o){let s=t;if(t&&!o&&"object"==typeof t)if(ur.endsWith(n,"{}"))n=r?n:n.slice(0,-2),t=JSON.stringify(t);else if(ur.isArray(t)&&function(t){return ur.isArray(t)&&!t.some(dr)}(t)||(ur.isFileList(t)||ur.endsWith(n,"[]"))&&(s=ur.toArray(t)))return n=gr(n),s.forEach((function(t,r){!ur.isUndefined(t)&&null!==t&&e.append(!0===a?mr([n],r,i):null===a?n:n+"[]",c(t))})),!1;return!!dr(t)||(e.append(mr(o,n,i),c(t)),!1)}const l=[],f=Object.assign(yr,{defaultVisitor:u,convertValue:c,isVisitable:dr});if(!ur.isObject(t))throw new TypeError("data must be an object");return function t(n,r){if(!ur.isUndefined(n)){if(-1!==l.indexOf(n))throw Error("Circular reference detected in "+r.join("."));l.push(n),ur.forEach(n,(function(n,i){!0===(!(ur.isUndefined(n)||null===n)&&o.call(e,n,ur.isString(i)?i.trim():i,r,f))&&t(n,r?r.concat(i):[i])})),l.pop()}}(t),e};function br(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,(function(t){return e[t]}))}function wr(t,e){this._pairs=[],t&&vr(t,this,e)}const _r=wr.prototype;_r.append=function(t,e){this._pairs.push([t,e])},_r.toString=function(t){const e=t?function(e){return t.call(this,e,br)}:br;return this._pairs.map((function(t){return e(t[0])+"="+e(t[1])}),"").join("&")};var Sr=wr;function Or(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Er(t,e,n){if(!e)return t;const r=n&&n.encode||Or,o=n&&n.serialize;let i;if(i=o?o(e,n):ur.isURLSearchParams(e)?e.toString():new Sr(e,n).toString(r),i){const e=t.indexOf("#");-1!==e&&(t=t.slice(0,e)),t+=(-1===t.indexOf("?")?"?":"&")+i}return t}var kr=class{constructor(){this.handlers=[]}use(t,e,n){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){ur.forEach(this.handlers,(function(e){null!==e&&t(e)}))}},jr={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Pr={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:Sr,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const xr="undefined"!=typeof window&&"undefined"!=typeof document,Tr=(Cr="undefined"!=typeof navigator&&navigator.product,xr&&["ReactNative","NativeScript","NS"].indexOf(Cr)<0);var Cr;const Rr="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts;var Ar={...r,...Pr};var Nr=function(t){function e(t,n,r,o){let i=t[o++];if("__proto__"===i)return!0;const a=Number.isFinite(+i),s=o>=t.length;if(i=!i&&ur.isArray(r)?r.length:i,s)return ur.hasOwnProp(r,i)?r[i]=[r[i],n]:r[i]=n,!a;r[i]&&ur.isObject(r[i])||(r[i]=[]);return e(t,n,r[i],o)&&ur.isArray(r[i])&&(r[i]=function(t){const e={},n=Object.keys(t);let r;const o=n.length;let i;for(r=0;r{e(function(t){return ur.matchAll(/\w+|\[(\w*)]/g,t).map((t=>"[]"===t[0]?"":t[1]||t[0]))}(t),r,n,0)})),n}return null};const Dr={transitional:jr,adapter:["xhr","http"],transformRequest:[function(t,e){const n=e.getContentType()||"",r=n.indexOf("application/json")>-1,o=ur.isObject(t);o&&ur.isHTMLForm(t)&&(t=new FormData(t));if(ur.isFormData(t))return r?JSON.stringify(Nr(t)):t;if(ur.isArrayBuffer(t)||ur.isBuffer(t)||ur.isStream(t)||ur.isFile(t)||ur.isBlob(t))return t;if(ur.isArrayBufferView(t))return t.buffer;if(ur.isURLSearchParams(t))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let i;if(o){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(t,e){return vr(t,new Ar.classes.URLSearchParams,Object.assign({visitor:function(t,e,n,r){return Ar.isNode&&ur.isBuffer(t)?(this.append(e,t.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},e))}(t,this.formSerializer).toString();if((i=ur.isFileList(t))||n.indexOf("multipart/form-data")>-1){const e=this.env&&this.env.FormData;return vr(i?{"files[]":t}:t,e&&new e,this.formSerializer)}}return o||r?(e.setContentType("application/json",!1),function(t,e,n){if(ur.isString(t))try{return(e||JSON.parse)(t),ur.trim(t)}catch(r){if("SyntaxError"!==r.name)throw r}return(n||JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){const e=this.transitional||Dr.transitional,n=e&&e.forcedJSONParsing,r="json"===this.responseType;if(t&&ur.isString(t)&&(n&&!this.responseType||r)){const n=!(e&&e.silentJSONParsing)&&r;try{return JSON.parse(t)}catch(o){if(n){if("SyntaxError"===o.name)throw hr.from(o,hr.ERR_BAD_RESPONSE,this,null,this.response);throw o}}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Ar.classes.FormData,Blob:Ar.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};ur.forEach(["delete","get","head","post","put","patch"],(t=>{Dr.headers[t]={}}));var Ir=Dr;const Lr=ur.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const Mr=Symbol("internals");function Fr(t){return t&&String(t).trim().toLowerCase()}function Ur(t){return!1===t||null==t?t:ur.isArray(t)?t.map(Ur):String(t)}function zr(t,e,n,r,o){return ur.isFunction(r)?r.call(this,e,n):(o&&(e=n),ur.isString(e)?ur.isString(r)?-1!==e.indexOf(r):ur.isRegExp(r)?r.test(e):void 0:void 0)}class Br{constructor(t){t&&this.set(t)}set(t,e,n){const r=this;function o(t,e,n){const o=Fr(e);if(!o)throw new Error("header name must be a non-empty string");const i=ur.findKey(r,o);(!i||void 0===r[i]||!0===n||void 0===n&&!1!==r[i])&&(r[i||e]=Ur(t))}const i=(t,e)=>ur.forEach(t,((t,n)=>o(t,n,e)));return ur.isPlainObject(t)||t instanceof this.constructor?i(t,e):ur.isString(t)&&(t=t.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim())?i((t=>{const e={};let n,r,o;return t&&t.split("\n").forEach((function(t){o=t.indexOf(":"),n=t.substring(0,o).trim().toLowerCase(),r=t.substring(o+1).trim(),!n||e[n]&&Lr[n]||("set-cookie"===n?e[n]?e[n].push(r):e[n]=[r]:e[n]=e[n]?e[n]+", "+r:r)})),e})(t),e):null!=t&&o(e,t,n),this}get(t,e){if(t=Fr(t)){const n=ur.findKey(this,t);if(n){const t=this[n];if(!e)return t;if(!0===e)return function(t){const e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(t);)e[r[1]]=r[2];return e}(t);if(ur.isFunction(e))return e.call(this,t,n);if(ur.isRegExp(e))return e.exec(t);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,e){if(t=Fr(t)){const n=ur.findKey(this,t);return!(!n||void 0===this[n]||e&&!zr(0,this[n],n,e))}return!1}delete(t,e){const n=this;let r=!1;function o(t){if(t=Fr(t)){const o=ur.findKey(n,t);!o||e&&!zr(0,n[o],o,e)||(delete n[o],r=!0)}}return ur.isArray(t)?t.forEach(o):o(t),r}clear(t){const e=Object.keys(this);let n=e.length,r=!1;for(;n--;){const o=e[n];t&&!zr(0,this[o],o,t,!0)||(delete this[o],r=!0)}return r}normalize(t){const e=this,n={};return ur.forEach(this,((r,o)=>{const i=ur.findKey(n,o);if(i)return e[i]=Ur(r),void delete e[o];const a=t?function(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((t,e,n)=>e.toUpperCase()+n))}(o):String(o).trim();a!==o&&delete e[o],e[a]=Ur(r),n[a]=!0})),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const e=Object.create(null);return ur.forEach(this,((n,r)=>{null!=n&&!1!==n&&(e[r]=t&&ur.isArray(n)?n.join(", "):n)})),e}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([t,e])=>t+": "+e)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...e){const n=new this(t);return e.forEach((t=>n.set(t))),n}static accessor(t){const e=(this[Mr]=this[Mr]={accessors:{}}).accessors,n=this.prototype;function r(t){const r=Fr(t);e[r]||(!function(t,e){const n=ur.toCamelCase(" "+e);["get","set","has"].forEach((r=>{Object.defineProperty(t,r+n,{value:function(t,n,o){return this[r].call(this,e,t,n,o)},configurable:!0})}))}(n,t),e[r]=!0)}return ur.isArray(t)?t.forEach(r):r(t),this}}Br.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),ur.reduceDescriptors(Br.prototype,(({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(t){this[n]=t}}})),ur.freezeMethods(Br);var Hr=Br;function $r(t,e){const n=this||Ir,r=e||n,o=Hr.from(r.headers);let i=r.data;return ur.forEach(t,(function(t){i=t.call(n,i,o.normalize(),e?e.status:void 0)})),o.normalize(),i}function qr(t){return!(!t||!t.__CANCEL__)}function Vr(t,e,n){hr.call(this,null==t?"canceled":t,hr.ERR_CANCELED,e,n),this.name="CanceledError"}ur.inherits(Vr,hr,{__CANCEL__:!0});var Wr=Vr;var Kr=Ar.hasStandardBrowserEnv?{write(t,e,n,r,o,i){const a=[t+"="+encodeURIComponent(e)];ur.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),ur.isString(r)&&a.push("path="+r),ur.isString(o)&&a.push("domain="+o),!0===i&&a.push("secure"),document.cookie=a.join("; ")},read(t){const e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove(t){this.write(t,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function Jr(t,e){return t&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)?function(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}(t,e):e}var Gr=Ar.hasStandardBrowserEnv?function(){const t=/(msie|trident)/i.test(navigator.userAgent),e=document.createElement("a");let n;function r(n){let r=n;return t&&(e.setAttribute("href",r),r=e.href),e.setAttribute("href",r),{href:e.href,protocol:e.protocol?e.protocol.replace(/:$/,""):"",host:e.host,search:e.search?e.search.replace(/^\?/,""):"",hash:e.hash?e.hash.replace(/^#/,""):"",hostname:e.hostname,port:e.port,pathname:"/"===e.pathname.charAt(0)?e.pathname:"/"+e.pathname}}return n=r(window.location.href),function(t){const e=ur.isString(t)?r(t):t;return e.protocol===n.protocol&&e.host===n.host}}():function(){return!0};var Yr=function(t,e){t=t||10;const n=new Array(t),r=new Array(t);let o,i=0,a=0;return e=void 0!==e?e:1e3,function(s){const c=Date.now(),u=r[a];o||(o=c),n[i]=s,r[i]=c;let l=a,f=0;for(;l!==i;)f+=n[l++],l%=t;if(i=(i+1)%t,i===a&&(a=(a+1)%t),c-o{const i=o.loaded,a=o.lengthComputable?o.total:void 0,s=i-n,c=r(s);n=i;const u={loaded:i,total:a,progress:a?i/a:void 0,bytes:s,rate:c||void 0,estimated:c&&a&&i<=a?(a-i)/c:void 0,event:o};u[e?"download":"upload"]=!0,t(u)}}var Qr="undefined"!=typeof XMLHttpRequest&&function(t){return new Promise((function(e,n){let r=t.data;const o=Hr.from(t.headers).normalize();let i,a,{responseType:s,withXSRFToken:c}=t;function u(){t.cancelToken&&t.cancelToken.unsubscribe(i),t.signal&&t.signal.removeEventListener("abort",i)}if(ur.isFormData(r))if(Ar.hasStandardBrowserEnv||Ar.hasStandardBrowserWebWorkerEnv)o.setContentType(!1);else if(!1!==(a=o.getContentType())){const[t,...e]=a?a.split(";").map((t=>t.trim())).filter(Boolean):[];o.setContentType([t||"multipart/form-data",...e].join("; "))}let l=new XMLHttpRequest;if(t.auth){const e=t.auth.username||"",n=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";o.set("Authorization","Basic "+btoa(e+":"+n))}const f=Jr(t.baseURL,t.url);function p(){if(!l)return;const r=Hr.from("getAllResponseHeaders"in l&&l.getAllResponseHeaders());!function(t,e,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?e(new hr("Request failed with status code "+n.status,[hr.ERR_BAD_REQUEST,hr.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):t(n)}((function(t){e(t),u()}),(function(t){n(t),u()}),{data:s&&"text"!==s&&"json"!==s?l.response:l.responseText,status:l.status,statusText:l.statusText,headers:r,config:t,request:l}),l=null}if(l.open(t.method.toUpperCase(),Er(f,t.params,t.paramsSerializer),!0),l.timeout=t.timeout,"onloadend"in l?l.onloadend=p:l.onreadystatechange=function(){l&&4===l.readyState&&(0!==l.status||l.responseURL&&0===l.responseURL.indexOf("file:"))&&setTimeout(p)},l.onabort=function(){l&&(n(new hr("Request aborted",hr.ECONNABORTED,t,l)),l=null)},l.onerror=function(){n(new hr("Network Error",hr.ERR_NETWORK,t,l)),l=null},l.ontimeout=function(){let e=t.timeout?"timeout of "+t.timeout+"ms exceeded":"timeout exceeded";const r=t.transitional||jr;t.timeoutErrorMessage&&(e=t.timeoutErrorMessage),n(new hr(e,r.clarifyTimeoutError?hr.ETIMEDOUT:hr.ECONNABORTED,t,l)),l=null},Ar.hasStandardBrowserEnv&&(c&&ur.isFunction(c)&&(c=c(t)),c||!1!==c&&Gr(f))){const e=t.xsrfHeaderName&&t.xsrfCookieName&&Kr.read(t.xsrfCookieName);e&&o.set(t.xsrfHeaderName,e)}void 0===r&&o.setContentType(null),"setRequestHeader"in l&&ur.forEach(o.toJSON(),(function(t,e){l.setRequestHeader(e,t)})),ur.isUndefined(t.withCredentials)||(l.withCredentials=!!t.withCredentials),s&&"json"!==s&&(l.responseType=t.responseType),"function"==typeof t.onDownloadProgress&&l.addEventListener("progress",Xr(t.onDownloadProgress,!0)),"function"==typeof t.onUploadProgress&&l.upload&&l.upload.addEventListener("progress",Xr(t.onUploadProgress)),(t.cancelToken||t.signal)&&(i=e=>{l&&(n(!e||e.type?new Wr(null,t,l):e),l.abort(),l=null)},t.cancelToken&&t.cancelToken.subscribe(i),t.signal&&(t.signal.aborted?i():t.signal.addEventListener("abort",i)));const h=function(t){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}(f);h&&-1===Ar.protocols.indexOf(h)?n(new hr("Unsupported protocol "+h+":",hr.ERR_BAD_REQUEST,t)):l.send(r||null)}))};const Zr={http:null,xhr:Qr};ur.forEach(Zr,((t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch(n){}Object.defineProperty(t,"adapterName",{value:e})}}));const to=t=>`- ${t}`,eo=t=>ur.isFunction(t)||null===t||!1===t;var no=t=>{t=ur.isArray(t)?t:[t];const{length:e}=t;let n,r;const o={};for(let i=0;i`adapter ${t} `+(!1===e?"is not supported by the environment":"is not available in the build")));let n=e?t.length>1?"since :\n"+t.map(to).join("\n"):" "+to(t[0]):"as no adapter specified";throw new hr("There is no suitable adapter to dispatch the request "+n,"ERR_NOT_SUPPORT")}return r};function ro(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Wr(null,t)}function oo(t){ro(t),t.headers=Hr.from(t.headers),t.data=$r.call(t,t.transformRequest),-1!==["post","put","patch"].indexOf(t.method)&&t.headers.setContentType("application/x-www-form-urlencoded",!1);return no(t.adapter||Ir.adapter)(t).then((function(e){return ro(t),e.data=$r.call(t,t.transformResponse,e),e.headers=Hr.from(e.headers),e}),(function(e){return qr(e)||(ro(t),e&&e.response&&(e.response.data=$r.call(t,t.transformResponse,e.response),e.response.headers=Hr.from(e.response.headers))),Promise.reject(e)}))}const io=t=>t instanceof Hr?t.toJSON():t;function ao(t,e){e=e||{};const n={};function r(t,e,n){return ur.isPlainObject(t)&&ur.isPlainObject(e)?ur.merge.call({caseless:n},t,e):ur.isPlainObject(e)?ur.merge({},e):ur.isArray(e)?e.slice():e}function o(t,e,n){return ur.isUndefined(e)?ur.isUndefined(t)?void 0:r(void 0,t,n):r(t,e,n)}function i(t,e){if(!ur.isUndefined(e))return r(void 0,e)}function a(t,e){return ur.isUndefined(e)?ur.isUndefined(t)?void 0:r(void 0,t):r(void 0,e)}function s(n,o,i){return i in e?r(n,o):i in t?r(void 0,n):void 0}const c={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:(t,e)=>o(io(t),io(e),!0)};return ur.forEach(Object.keys(Object.assign({},t,e)),(function(r){const i=c[r]||o,a=i(t[r],e[r],r);ur.isUndefined(a)&&i!==s||(n[r]=a)})),n}const so="1.6.7",co={};["object","boolean","number","function","string","symbol"].forEach(((t,e)=>{co[t]=function(n){return typeof n===t||"a"+(e<1?"n ":" ")+t}}));const uo={};co.transitional=function(t,e,n){function r(t,e){return"[Axios v1.6.7] Transitional option '"+t+"'"+e+(n?". "+n:"")}return(n,o,i)=>{if(!1===t)throw new hr(r(o," has been removed"+(e?" in "+e:"")),hr.ERR_DEPRECATED);return e&&!uo[o]&&(uo[o]=!0,console.warn(r(o," has been deprecated since v"+e+" and will be removed in the near future"))),!t||t(n,o,i)}};var lo={assertOptions:function(t,e,n){if("object"!=typeof t)throw new hr("options must be an object",hr.ERR_BAD_OPTION_VALUE);const r=Object.keys(t);let o=r.length;for(;o-- >0;){const i=r[o],a=e[i];if(a){const e=t[i],n=void 0===e||a(e,i,t);if(!0!==n)throw new hr("option "+i+" must be "+n,hr.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new hr("Unknown option "+i,hr.ERR_BAD_OPTION)}},validators:co};const fo=lo.validators;class po{constructor(t){this.defaults=t,this.interceptors={request:new kr,response:new kr}}async request(t,e){try{return await this._request(t,e)}catch(n){if(n instanceof Error){let t;Error.captureStackTrace?Error.captureStackTrace(t={}):t=new Error;const e=t.stack?t.stack.replace(/^.+\n/,""):"";n.stack?e&&!String(n.stack).endsWith(e.replace(/^.+\n.+\n/,""))&&(n.stack+="\n"+e):n.stack=e}throw n}}_request(t,e){"string"==typeof t?(e=e||{}).url=t:e=t||{},e=ao(this.defaults,e);const{transitional:n,paramsSerializer:r,headers:o}=e;void 0!==n&&lo.assertOptions(n,{silentJSONParsing:fo.transitional(fo.boolean),forcedJSONParsing:fo.transitional(fo.boolean),clarifyTimeoutError:fo.transitional(fo.boolean)},!1),null!=r&&(ur.isFunction(r)?e.paramsSerializer={serialize:r}:lo.assertOptions(r,{encode:fo.function,serialize:fo.function},!0)),e.method=(e.method||this.defaults.method||"get").toLowerCase();let i=o&&ur.merge(o.common,o[e.method]);o&&ur.forEach(["delete","get","head","post","put","patch","common"],(t=>{delete o[t]})),e.headers=Hr.concat(i,o);const a=[];let s=!0;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&!1===t.runWhen(e)||(s=s&&t.synchronous,a.unshift(t.fulfilled,t.rejected))}));const c=[];let u;this.interceptors.response.forEach((function(t){c.push(t.fulfilled,t.rejected)}));let l,f=0;if(!s){const t=[oo.bind(this),void 0];for(t.unshift.apply(t,a),t.push.apply(t,c),l=t.length,u=Promise.resolve(e);f{if(!n._listeners)return;let e=n._listeners.length;for(;e-- >0;)n._listeners[e](t);n._listeners=null})),this.promise.then=t=>{let e;const r=new Promise((t=>{n.subscribe(t),e=t})).then(t);return r.cancel=function(){n.unsubscribe(e)},r},t((function(t,r,o){n.reason||(n.reason=new Wr(t,r,o),e(n.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1)}static source(){let t;return{token:new go((function(e){t=e})),cancel:t}}}var mo=go;const yo={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(yo).forEach((([t,e])=>{yo[e]=t}));var vo=yo;const bo=function t(e){const n=new ho(e),r=Tn(ho.prototype.request,n);return ur.extend(r,ho.prototype,n,{allOwnKeys:!0}),ur.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return t(ao(e,n))},r}(Ir);bo.Axios=ho,bo.CanceledError=Wr,bo.CancelToken=mo,bo.isCancel=qr,bo.VERSION=so,bo.toFormData=vr,bo.AxiosError=hr,bo.Cancel=bo.CanceledError,bo.all=function(t){return Promise.all(t)},bo.spread=function(t){return function(e){return t.apply(null,e)}},bo.isAxiosError=function(t){return ur.isObject(t)&&!0===t.isAxiosError},bo.mergeConfig=ao,bo.AxiosHeaders=Hr,bo.formToJSON=t=>Nr(ur.isHTMLForm(t)?new FormData(t):t),bo.getAdapter=no,bo.HttpStatusCode=vo,bo.default=bo;var wo=bo;const _o="%[a-f0-9]{2}",So=new RegExp("("+_o+")|([^%]+?)","gi"),Oo=new RegExp("("+_o+")+","gi");function Eo(t,e){try{return[decodeURIComponent(t.join(""))]}catch{}if(1===t.length)return t;e=e||1;const n=t.slice(0,e),r=t.slice(e);return Array.prototype.concat.call([],Eo(n),Eo(r))}function ko(t){try{return decodeURIComponent(t)}catch{let e=t.match(So)||[];for(let n=1;nnull==t,Co=t=>encodeURIComponent(t).replace(/[!'()*]/g,(t=>`%${t.charCodeAt(0).toString(16).toUpperCase()}`)),Ro=Symbol("encodeFragmentIdentifier");function Ao(t){if("string"!=typeof t||1!==t.length)throw new TypeError("arrayFormatSeparator must be single character string")}function No(t,e){return e.encode?e.strict?Co(t):encodeURIComponent(t):t}function Do(t,e){return e.decode?jo(t):t}function Io(t){return Array.isArray(t)?t.sort():"object"==typeof t?Io(Object.keys(t)).sort(((t,e)=>Number(t)-Number(e))).map((e=>t[e])):t}function Lo(t){const e=t.indexOf("#");return-1!==e&&(t=t.slice(0,e)),t}function Mo(t,e){return e.parseNumbers&&!Number.isNaN(Number(t))&&"string"==typeof t&&""!==t.trim()?t=Number(t):!e.parseBooleans||null===t||"true"!==t.toLowerCase()&&"false"!==t.toLowerCase()||(t="true"===t.toLowerCase()),t}function Fo(t){const e=(t=Lo(t)).indexOf("?");return-1===e?"":t.slice(e+1)}function Uo(t,e){Ao((e={decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1,...e}).arrayFormatSeparator);const n=function(t){let e;switch(t.arrayFormat){case"index":return(t,n,r)=>{e=/\[(\d*)]$/.exec(t),t=t.replace(/\[\d*]$/,""),e?(void 0===r[t]&&(r[t]={}),r[t][e[1]]=n):r[t]=n};case"bracket":return(t,n,r)=>{e=/(\[])$/.exec(t),t=t.replace(/\[]$/,""),e?void 0!==r[t]?r[t]=[...r[t],n]:r[t]=[n]:r[t]=n};case"colon-list-separator":return(t,n,r)=>{e=/(:list)$/.exec(t),t=t.replace(/:list$/,""),e?void 0!==r[t]?r[t]=[...r[t],n]:r[t]=[n]:r[t]=n};case"comma":case"separator":return(e,n,r)=>{const o="string"==typeof n&&n.includes(t.arrayFormatSeparator),i="string"==typeof n&&!o&&Do(n,t).includes(t.arrayFormatSeparator);n=i?Do(n,t):n;const a=o||i?n.split(t.arrayFormatSeparator).map((e=>Do(e,t))):null===n?n:Do(n,t);r[e]=a};case"bracket-separator":return(e,n,r)=>{const o=/(\[])$/.test(e);if(e=e.replace(/\[]$/,""),!o)return void(r[e]=n?Do(n,t):n);const i=null===n?[]:n.split(t.arrayFormatSeparator).map((e=>Do(e,t)));void 0!==r[e]?r[e]=[...r[e],...i]:r[e]=i};default:return(t,e,n)=>{void 0!==n[t]?n[t]=[...[n[t]].flat(),e]:n[t]=e}}}(e),r=Object.create(null);if("string"!=typeof t)return r;if(!(t=t.trim().replace(/^[?#&]/,"")))return r;for(const o of t.split("&")){if(""===o)continue;const t=e.decode?o.replace(/\+/g," "):o;let[i,a]=Po(t,"=");void 0===i&&(i=t),a=void 0===a?null:["comma","separator","bracket-separator"].includes(e.arrayFormat)?a:Do(a,e),n(Do(i,e),a,r)}for(const[o,i]of Object.entries(r))if("object"==typeof i&&null!==i)for(const[t,n]of Object.entries(i))i[t]=Mo(n,e);else r[o]=Mo(i,e);return!1===e.sort?r:(!0===e.sort?Object.keys(r).sort():Object.keys(r).sort(e.sort)).reduce(((t,e)=>{const n=r[e];return t[e]=Boolean(n)&&"object"==typeof n&&!Array.isArray(n)?Io(n):n,t}),Object.create(null))}function zo(t,e){if(!t)return"";Ao((e={encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:",",...e}).arrayFormatSeparator);const n=n=>e.skipNull&&To(t[n])||e.skipEmptyString&&""===t[n],r=function(t){switch(t.arrayFormat){case"index":return e=>(n,r)=>{const o=n.length;return void 0===r||t.skipNull&&null===r||t.skipEmptyString&&""===r?n:null===r?[...n,[No(e,t),"[",o,"]"].join("")]:[...n,[No(e,t),"[",No(o,t),"]=",No(r,t)].join("")]};case"bracket":return e=>(n,r)=>void 0===r||t.skipNull&&null===r||t.skipEmptyString&&""===r?n:null===r?[...n,[No(e,t),"[]"].join("")]:[...n,[No(e,t),"[]=",No(r,t)].join("")];case"colon-list-separator":return e=>(n,r)=>void 0===r||t.skipNull&&null===r||t.skipEmptyString&&""===r?n:null===r?[...n,[No(e,t),":list="].join("")]:[...n,[No(e,t),":list=",No(r,t)].join("")];case"comma":case"separator":case"bracket-separator":{const e="bracket-separator"===t.arrayFormat?"[]=":"=";return n=>(r,o)=>void 0===o||t.skipNull&&null===o||t.skipEmptyString&&""===o?r:(o=null===o?"":o,0===r.length?[[No(n,t),e,No(o,t)].join("")]:[[r,No(o,t)].join(t.arrayFormatSeparator)])}default:return e=>(n,r)=>void 0===r||t.skipNull&&null===r||t.skipEmptyString&&""===r?n:null===r?[...n,No(e,t)]:[...n,[No(e,t),"=",No(r,t)].join("")]}}(e),o={};for(const[a,s]of Object.entries(t))n(a)||(o[a]=s);const i=Object.keys(o);return!1!==e.sort&&i.sort(e.sort),i.map((n=>{const o=t[n];return void 0===o?"":null===o?No(n,e):Array.isArray(o)?0===o.length&&"bracket-separator"===e.arrayFormat?No(n,e)+"[]":o.reduce(r(n),[]).join("&"):No(n,e)+"="+No(o,e)})).filter((t=>t.length>0)).join("&")}function Bo(t,e){e={decode:!0,...e};let[n,r]=Po(t,"#");return void 0===n&&(n=t),{url:n?.split("?")?.[0]??"",query:Uo(Fo(t),e),...e&&e.parseFragmentIdentifier&&r?{fragmentIdentifier:Do(r,e)}:{}}}function Ho(t,e){e={encode:!0,strict:!0,[Ro]:!0,...e};const n=Lo(t.url).split("?")[0]||"";let r=zo({...Uo(Fo(t.url),{sort:!1}),...t.query},e);r&&(r=`?${r}`);let o=function(t){let e="";const n=t.indexOf("#");return-1!==n&&(e=t.slice(n)),e}(t.url);if(t.fragmentIdentifier){const r=new URL(n);r.hash=t.fragmentIdentifier,o=e[Ro]?r.hash:`#${t.fragmentIdentifier}`}return`${n}${r}${o}`}function $o(t,e,n){n={parseFragmentIdentifier:!0,[Ro]:!1,...n};const{url:r,query:o,fragmentIdentifier:i}=Bo(t,n);return Ho({url:r,query:xo(o,e),fragmentIdentifier:i},n)}function qo(t,e,n){return $o(t,Array.isArray(e)?t=>!e.includes(t):(t,n)=>!e(t,n),n)}var Vo=o;function Wo(t,e){return Object.prototype.hasOwnProperty.call(e,t)}var Ko="function"==typeof Object.assign?Object.assign:function(t){if(null==t)throw new TypeError("Cannot convert undefined or null to object");for(var e=Object(t),n=1,r=arguments.length;n{let{apiKey:e}=t;const n=(t,e,n)=>{const r=n?t:Xo({},t);return"application/x-www-form-urlencoded"===e?Vo.stringify(r):r},r=t=>{let{contentType:r="application/x-www-form-urlencoded",data:o,endPoint:i,headers:a,method:s,removeDefaultPostData:c,sessionToken:u,url:l,...f}=t;const p=""+l+i,h=n(o,r,c),d=Qo(((t,n)=>{let r=window.localStorage.getItem("bid");r||(r=window.localStorage.setItem("bid",hi()));const o={"Content-Type":t,"X-TIME":Date.now(),"X-API-KEY":e,"X-BID":r};return n&&(o.Authorization="Bearer "+n),o})(r,u),a);return wo.request({url:p,method:s,data:h,headers:d,...f}).catch((t=>{const e=ii({},["response","data"],t),n=oi(["response","status"],t);if("string"==typeof e)throw e;throw Xo(e,{status:n})})).then(ai("data"))};return{deleteRequest:t=>r({method:"DELETE",...t}),get:t=>{let{ignoreQueryParams:e,endPoint:o,data:i,...a}=t;return r({...a,method:"GET",endPoint:e?o:o+"?"+n(i,"application/x-www-form-urlencoded")})},post:t=>r({method:"POST",...t}),put:t=>r({method:"PUT",...t}),patch:t=>r({method:"PATCH",...t})}};var gi=t=>{let{options:e,apiKey:n}=t;const r=e.domains.root,o=e.domains.api,i=di({apiKey:n});return{...i}};const mi={key:"store",storage:$.A,whitelist:[],stateReconciler:q.A},yi={domains:{root:yn.P$,api:yn.Lk}};let vi=gi({...{apiKey:yn.Kz,options:yi}});const bi={};var wi=function(t,e){if(void 0===t&&(t=!1),void 0===e&&(e={}),t){let t=window.localStorage.getItem("bid");t||(t=window.localStorage.setItem("bid",hi()))}const n=function(t,e,n){return p(t,e,n)}(L(mi,ln()),Object.assign({},bi,e),Ye(t));let r=null;return t&&(r=function(t,e,n){var r=n||!1,o=p(H,B,e&&e.enhancer?e.enhancer:void 0),i=function(t){o.dispatch({type:S,key:t})},a=function(e,n,i){var a={type:v,payload:n,err:i,key:e};t.dispatch(a),o.dispatch(a),r&&s.getState().bootstrapped&&(r(),r=!1)},s=U({},o,{purge:function(){var e=[];return t.dispatch({type:_,result:function(t){e.push(t)}}),Promise.all(e)},flush:function(){var e=[];return t.dispatch({type:y,result:function(t){e.push(t)}}),Promise.all(e)},pause:function(){t.dispatch({type:b})},persist:function(){t.dispatch({type:w,register:i,rehydrate:a})}});return e&&e.manualPersist||s.persist(),s}(n)),Ge.run(Pn,{api:vi,options:yi}),{store:n,persistor:r}};const _i=t=>{var e,n;let{element:r}=t;const{store:o,persistor:s}=wi(!0,null===(e=window)||void 0===e?void 0:e.__PRELOADED_STATE__);return null===(n=window)||void 0===n||delete n.__PRELOADED_STATE__,i.createElement(a.Kq,{store:o},r)}},7960:function(t,e,n){"use strict";n.r(e),n.d(e,{wrapRootElement:function(){return i}});var r=n(6540),o=n(8865);const i=t=>{let{element:e}=t;return r.createElement(o.NP,null,e)}},6348:function(t,e,n){"use strict";n.d(e,{A:function(){return o}});var r=n(6540);function o(t){let{children:e,className:n,variant:o,size:i,active:a,onClick:s,...c}=t;const{0:u,1:l}=(0,r.useState)("button");return(0,r.useEffect)((()=>{let t="button";n&&(t+=" "+n),o&&(t+=" button-"+o),i&&(t+=" button-size-"+i),l(t)}),[n,o,i]),r.createElement("button",Object.assign({className:u,active:a,onClick:s},c),e)}},6711:function(t,e,n){"use strict";n.d(e,{N:function(){return a},e:function(){return s}});var r=n(6540),o=n(2227);const i=t=>{let{external:e,href:n,to:i,...a}=t;const s=e?{target:"_blank",rel:"noreferrer noopener"}:{};return e?r.createElement("a",Object.assign({href:n},s,a)):r.createElement(o.c_,Object.assign({to:i},s,a))};i.defaultProps={};var a=i;var s=t=>{let{children:e,...n}=t;return r.createElement(a,Object.assign({external:!0},n),e)}},1143:function(t,e,n){"use strict";n.d(e,{$G:function(){return f},CU:function(){return o},JB:function(){return i},Kz:function(){return a},Lk:function(){return c},Nt:function(){return l},P$:function(){return s},Rp:function(){return u},yJ:function(){return p}});var r=n(9540);const o="1.0.0",i="IVANNIKOV.PRO",a="?",s=r.K?"https://ivannikov.pro":"http://localhost:3000",c=r.K?"https://api.ivannikov.pro":"http://localhost:3100",u="info@ivannikov.pro",l="ivannikovPro",f="ivannikov_pro",p={en:{twitterUsername:"ivannikov_pro",twitter:"https://twitter.com/ivannikov_pro",facebook:"https://www.facebook.com/ivannikov.pro",linkedin:"https://www.linkedin.com/in/an-ivannikov/",medium:"https://ivannikov-pro.medium.com/",youtube:"https://www.youtube.com/@ivannikov_pro",instagram:"https://www.instagram.com/ivannikov_pro/",tiktok:"https://www.tiktok.com/@ivannikov_pro/",telegram:"https://t.me/ivannikov_pro",flru:"https://www.fl.ru/users/anivannikov/opinions/",roobinium:"https://roobinium.io/"},ru:{twitterUsername:"ivannikov_pro",twitter:"https://twitter.com/ivannikov_pro",facebook:"https://www.facebook.com/ivannikov.pro",linkedin:"https://www.linkedin.com/in/an-ivannikov/",medium:"https://ivannikov-pro.medium.com/",youtube:"https://www.youtube.com/@ivannikov_pro",instagram:"https://www.instagram.com/ivannikov_pro_ru/",tiktok:"https://www.tiktok.com/@ivannikov_pro_ru/",telegram:"https://t.me/ivannikov_pro_ru",flru:"https://www.fl.ru/users/anivannikov/opinions/",roobinium:"https://roobinium.io/ru/"}}},3633:function(t,e,n){"use strict";n.d(e,{DR:function(){return o},rK:function(){return i},uJ:function(){return r}});const r="@@mobileMenu/CLEAR",o="@@mobileMenu/TOGGLE",i="@@mobileMenu/SET"},1289:function(t,e,n){"use strict";n.d(e,{IU:function(){return o},L$:function(){return i},hZ:function(){return a}});var r=n(3633);const o=()=>({type:r.uJ}),i=()=>({type:r.DR}),a=t=>({type:r.rK,payload:t})},7568:function(t,e,n){"use strict";n.d(e,{n:function(){return o}});var r=n(3888);const o=t=>(0,r.O6)(t,["mobileMenu","isOpen"],!1)},8381:function(t,e,n){"use strict";n.d(e,{eM:function(){return a},w4:function(){return r}});var r={};n.r(r),n.d(r,{O:function(){return i}});var o=n(3888);const i=t=>(0,o.O6)(t,["theme","theme"],null);var a=n(7568)},3971:function(t,e,n){"use strict";n.d(e,{rK:function(){return o},uJ:function(){return r}});const r="@@theme/CLEAR",o="@@theme/SET"},8865:function(t,e,n){"use strict";n.d(e,{Dx:function(){return l},NP:function(){return f},Hk:function(){return c},Zj:function(){return u}});var r=n(6540),o=n(1468),i=n(8381),a=n(3971);const s=t=>({type:a.rK,payload:t}),c="page_theme_dark",u=[c,"page_theme_light"],l=(0,r.createContext)({theme:c,themes:u,toggleTheme:()=>null}),f=t=>{let{children:e}=t;const{0:n,1:a}=(0,r.useState)(c),f=(0,o.wA)(),p=(0,o.d4)(i.w4.O);return(0,r.useEffect)((()=>{p!==n&&(a(p),f(s(p))),"page_theme_dark"===p?(document.body.classList.remove("page_theme_light"),document.body.classList.add("page_theme_dark")):"page_theme_light"===p&&(document.body.classList.remove("page_theme_dark"),document.body.classList.add("page_theme_light"))}),[n,p]),r.createElement(l.Provider,{value:{theme:n,themes:u,toggleTheme:t=>{a(t),f(s(t)),"page_theme_dark"===t?(document.body.classList.remove("page_theme_light"),document.body.classList.add("page_theme_dark")):"page_theme_light"===t&&(document.body.classList.remove("page_theme_dark"),document.body.classList.add("page_theme_light"))}}},e)}},3888:function(t,e,n){"use strict";n.d(e,{O6:function(){return Un},Oe:function(){return le}});var r="delete",o=5,i=1<>>0;if(""+n!==e||4294967295===n)return NaN;e=n}return e<0?l(t)+e:e}function p(){return!0}function h(t,e,n){return(0===t&&!y(t)||void 0!==n&&t<=-n)&&(void 0===e||void 0!==n&&e>=n)}function d(t,e){return m(t,e,0)}function g(t,e){return m(t,e,e)}function m(t,e,n){return void 0===t?n:y(t)?e===1/0?e:0|Math.max(0,e+t):void 0===e||e===t?t:0|Math.min(e,t)}function y(t){return t<0||0===t&&1/t==-1/0}var v="@@__IMMUTABLE_ITERABLE__@@";function b(t){return Boolean(t&&t[v])}var w="@@__IMMUTABLE_KEYED__@@";function _(t){return Boolean(t&&t[w])}var S="@@__IMMUTABLE_INDEXED__@@";function O(t){return Boolean(t&&t[S])}function E(t){return _(t)||O(t)}var k=function(t){return b(t)?t:X(t)},j=function(t){function e(t){return _(t)?t:Q(t)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(k),P=function(t){function e(t){return O(t)?t:Z(t)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(k),x=function(t){function e(t){return b(t)&&!E(t)?t:tt(t)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(k);k.Keyed=j,k.Indexed=P,k.Set=x;var T="@@__IMMUTABLE_SEQ__@@";function C(t){return Boolean(t&&t[T])}var R="@@__IMMUTABLE_RECORD__@@";function A(t){return Boolean(t&&t[R])}function N(t){return b(t)||A(t)}var D="@@__IMMUTABLE_ORDERED__@@";function I(t){return Boolean(t&&t[D])}var L=0,M=1,F=2,U="function"==typeof Symbol&&Symbol.iterator,z="@@iterator",B=U||z,H=function(t){this.next=t};function $(t,e,n,r){var o=0===t?e:1===t?n:[e,n];return r?r.value=o:r={value:o,done:!1},r}function q(){return{value:void 0,done:!0}}function V(t){return!!Array.isArray(t)||!!J(t)}function W(t){return t&&"function"==typeof t.next}function K(t){var e=J(t);return e&&e.call(t)}function J(t){var e=t&&(U&&t[U]||t[z]);if("function"==typeof e)return e}H.prototype.toString=function(){return"[Iterator]"},H.KEYS=L,H.VALUES=M,H.ENTRIES=F,H.prototype.inspect=H.prototype.toSource=function(){return this.toString()},H.prototype[B]=function(){return this};var G=Object.prototype.hasOwnProperty;function Y(t){return!(!Array.isArray(t)&&"string"!=typeof t)||t&&"object"==typeof t&&Number.isInteger(t.length)&&t.length>=0&&(0===t.length?1===Object.keys(t).length:t.hasOwnProperty(t.length-1))}var X=function(t){function e(t){return null==t?it():N(t)?t.toSeq():function(t){var e=ct(t);if(e)return(r=J(n=t))&&r===n.entries?e.fromEntrySeq():function(t){var e=J(t);return e&&e===t.keys}(t)?e.toSetSeq():e;var n,r;if("object"==typeof t)return new nt(t);throw new TypeError("Expected Array or collection object of values, or keyed object: "+t)}(t)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.toSeq=function(){return this},e.prototype.toString=function(){return this.__toString("Seq {","}")},e.prototype.cacheResult=function(){return!this._cache&&this.__iterateUncached&&(this._cache=this.entrySeq().toArray(),this.size=this._cache.length),this},e.prototype.__iterate=function(t,e){var n=this._cache;if(n){for(var r=n.length,o=0;o!==r;){var i=n[e?r-++o:o++];if(!1===t(i[1],i[0],this))break}return o}return this.__iterateUncached(t,e)},e.prototype.__iterator=function(t,e){var n=this._cache;if(n){var r=n.length,o=0;return new H((function(){if(o===r)return{value:void 0,done:!0};var i=n[e?r-++o:o++];return $(t,i[0],i[1])}))}return this.__iteratorUncached(t,e)},e}(k),Q=function(t){function e(t){return null==t?it().toKeyedSeq():b(t)?_(t)?t.toSeq():t.fromEntrySeq():A(t)?t.toSeq():at(t)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.toKeyedSeq=function(){return this},e}(X),Z=function(t){function e(t){return null==t?it():b(t)?_(t)?t.entrySeq():t.toIndexedSeq():A(t)?t.toSeq().entrySeq():st(t)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.of=function(){return e(arguments)},e.prototype.toIndexedSeq=function(){return this},e.prototype.toString=function(){return this.__toString("Seq [","]")},e}(X),tt=function(t){function e(t){return(b(t)&&!E(t)?t:Z(t)).toSetSeq()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.of=function(){return e(arguments)},e.prototype.toSetSeq=function(){return this},e}(X);X.isSeq=C,X.Keyed=Q,X.Set=tt,X.Indexed=Z,X.prototype[T]=!0;var et=function(t){function e(t){this._array=t,this.size=t.length}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t,e){return this.has(t)?this._array[f(this,t)]:e},e.prototype.__iterate=function(t,e){for(var n=this._array,r=n.length,o=0;o!==r;){var i=e?r-++o:o++;if(!1===t(n[i],i,this))break}return o},e.prototype.__iterator=function(t,e){var n=this._array,r=n.length,o=0;return new H((function(){if(o===r)return{value:void 0,done:!0};var i=e?r-++o:o++;return $(t,i,n[i])}))},e}(Z),nt=function(t){function e(t){var e=Object.keys(t).concat(Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t):[]);this._object=t,this._keys=e,this.size=e.length}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t,e){return void 0===e||this.has(t)?this._object[t]:e},e.prototype.has=function(t){return G.call(this._object,t)},e.prototype.__iterate=function(t,e){for(var n=this._object,r=this._keys,o=r.length,i=0;i!==o;){var a=r[e?o-++i:i++];if(!1===t(n[a],a,this))break}return i},e.prototype.__iterator=function(t,e){var n=this._object,r=this._keys,o=r.length,i=0;return new H((function(){if(i===o)return{value:void 0,done:!0};var a=r[e?o-++i:i++];return $(t,a,n[a])}))},e}(Q);nt.prototype[D]=!0;var rt,ot=function(t){function e(t){this._collection=t,this.size=t.length||t.size}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.__iterateUncached=function(t,e){if(e)return this.cacheResult().__iterate(t,e);var n=K(this._collection),r=0;if(W(n))for(var o;!(o=n.next()).done&&!1!==t(o.value,r++,this););return r},e.prototype.__iteratorUncached=function(t,e){if(e)return this.cacheResult().__iterator(t,e);var n=K(this._collection);if(!W(n))return new H(q);var r=0;return new H((function(){var e=n.next();return e.done?e:$(t,r++,e.value)}))},e}(Z);function it(){return rt||(rt=new et([]))}function at(t){var e=ct(t);if(e)return e.fromEntrySeq();if("object"==typeof t)return new nt(t);throw new TypeError("Expected Array or collection object of [k, v] entries, or keyed object: "+t)}function st(t){var e=ct(t);if(e)return e;throw new TypeError("Expected Array or collection object of values: "+t)}function ct(t){return Y(t)?new et(t):V(t)?new ot(t):void 0}var ut="@@__IMMUTABLE_MAP__@@";function lt(t){return Boolean(t&&t[ut])}function ft(t){return lt(t)&&I(t)}function pt(t){return Boolean(t&&"function"==typeof t.equals&&"function"==typeof t.hashCode)}function ht(t,e){if(t===e||t!=t&&e!=e)return!0;if(!t||!e)return!1;if("function"==typeof t.valueOf&&"function"==typeof e.valueOf){if((t=t.valueOf())===(e=e.valueOf())||t!=t&&e!=e)return!0;if(!t||!e)return!1}return!!(pt(t)&&pt(e)&&t.equals(e))}var dt="function"==typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function(t,e){var n=65535&(t|=0),r=65535&(e|=0);return n*r+((t>>>16)*r+n*(e>>>16)<<16>>>0)|0};function gt(t){return t>>>1&1073741824|3221225471&t}var mt=Object.prototype.valueOf;function yt(t){if(null==t)return vt(t);if("function"==typeof t.hashCode)return gt(t.hashCode(t));var e,n=(e=t).valueOf!==mt&&"function"==typeof e.valueOf?e.valueOf(e):e;if(null==n)return vt(n);switch(typeof n){case"boolean":return n?1108378657:1108378656;case"number":return function(t){if(t!=t||t===1/0)return 0;var e=0|t;e!==t&&(e^=4294967295*t);for(;t>4294967295;)e^=t/=4294967295;return gt(e)}(n);case"string":return n.length>xt?function(t){var e=Rt[t];void 0===e&&(e=bt(t),Ct===Tt&&(Ct=0,Rt={}),Ct++,Rt[t]=e);return e}(n):bt(n);case"object":case"function":return function(t){var e;if(Et&&void 0!==(e=Ot.get(t)))return e;if(e=t[Pt],void 0!==e)return e;if(!_t){if(void 0!==(e=t.propertyIsEnumerable&&t.propertyIsEnumerable[Pt]))return e;if(void 0!==(e=function(t){if(t&&t.nodeType>0)switch(t.nodeType){case 1:return t.uniqueID;case 9:return t.documentElement&&t.documentElement.uniqueID}}(t)))return e}if(e=St(),Et)Ot.set(t,e);else{if(void 0!==wt&&!1===wt(t))throw new Error("Non-extensible objects are not allowed as keys.");if(_t)Object.defineProperty(t,Pt,{enumerable:!1,configurable:!1,writable:!1,value:e});else if(void 0!==t.propertyIsEnumerable&&t.propertyIsEnumerable===t.constructor.prototype.propertyIsEnumerable)t.propertyIsEnumerable=function(){return this.constructor.prototype.propertyIsEnumerable.apply(this,arguments)},t.propertyIsEnumerable[Pt]=e;else{if(void 0===t.nodeType)throw new Error("Unable to set a non-enumerable property on object.");t[Pt]=e}}return e}(n);case"symbol":return function(t){var e=kt[t];if(void 0!==e)return e;return e=St(),kt[t]=e,e}(n);default:if("function"==typeof n.toString)return bt(n.toString());throw new Error("Value type "+typeof n+" cannot be hashed.")}}function vt(t){return null===t?1108378658:1108378659}function bt(t){for(var e=0,n=0;n=0&&(u.get=function(e,n){return(e=f(this,e))>=0&&es)return{value:void 0,done:!0};var t=o.next();return r||e===M||t.done?t:$(e,c-1,e===L?void 0:t.value[1],t)}))},u}function Bt(t,e,n,r){var o=Yt(t);return o.__iterateUncached=function(o,i){var a=this;if(i)return this.cacheResult().__iterate(o,i);var s=!0,c=0;return t.__iterate((function(t,i,u){if(!s||!(s=e.call(n,t,i,u)))return c++,o(t,r?i:c-1,a)})),c},o.__iteratorUncached=function(o,i){var a=this;if(i)return this.cacheResult().__iterator(o,i);var s=t.__iterator(F,i),c=!0,u=0;return new H((function(){var t,i,l;do{if((t=s.next()).done)return r||o===M?t:$(o,u++,o===L?void 0:t.value[1],t);var f=t.value;i=f[0],l=f[1],c&&(c=e.call(n,l,i,a))}while(c);return o===F?t:$(o,i,l,t)}))},o}function Ht(t,e,n){var r=Yt(t);return r.__iterateUncached=function(o,i){if(i)return this.cacheResult().__iterate(o,i);var a=0,s=!1;return function t(c,u){c.__iterate((function(i,c){return(!e||u0}function Wt(t,e,n,r){var o=Yt(t),i=new et(n).map((function(t){return t.size}));return o.size=r?i.max():i.min(),o.__iterate=function(t,e){for(var n,r=this.__iterator(M,e),o=0;!(n=r.next()).done&&!1!==t(n.value,o++,this););return o},o.__iteratorUncached=function(t,o){var i=n.map((function(t){return t=k(t),K(o?t.reverse():t)})),a=0,s=!1;return new H((function(){var n;return s||(n=i.map((function(t){return t.next()})),s=r?n.every((function(t){return t.done})):n.some((function(t){return t.done}))),s?{value:void 0,done:!0}:$(t,a++,e.apply(null,n.map((function(t){return t.value}))))}))},o}function Kt(t,e){return t===e?t:C(t)?e:t.constructor(e)}function Jt(t){if(t!==Object(t))throw new TypeError("Expected [K, V] tuple: "+t)}function Gt(t){return _(t)?j:O(t)?P:x}function Yt(t){return Object.create((_(t)?Q:O(t)?Z:tt).prototype)}function Xt(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):X.prototype.cacheResult.call(this)}function Qt(t,e){return void 0===t&&void 0===e?0:void 0===t?1:void 0===e?-1:t>e?1:t0;)e[n]=arguments[n+1];if("function"!=typeof t)throw new TypeError("Invalid merger function: "+t);return ve(this,e,t)}function ve(t,e,n){for(var r=[],o=0;o0;)e[n]=arguments[n+1];return be(this,e,t)}function Oe(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];return ce(this,t,Be(),(function(t){return we(t,e)}))}function Ee(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];return ce(this,t,Be(),(function(t){return be(t,e)}))}function ke(t){var e=this.asMutable();return t(e),e.wasAltered()?e.__ensureOwner(this.__ownerID):this}function je(){return this.__ownerID?this:this.__ensureOwner(new u)}function Pe(){return this.__ensureOwner()}function xe(){return this.__altered}var Te=function(t){function e(e){return null==e?Be():lt(e)&&!I(e)?e:Be().withMutations((function(n){var r=t(e);ee(r.size),r.forEach((function(t,e){return n.set(e,t)}))}))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.of=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return Be().withMutations((function(e){for(var n=0;n=t.length)throw new Error("Missing value for key: "+t[n]);e.set(t[n],t[n+1])}}))},e.prototype.toString=function(){return this.__toString("Map {","}")},e.prototype.get=function(t,e){return this._root?this._root.get(0,void 0,t,e):e},e.prototype.set=function(t,e){return He(this,t,e)},e.prototype.remove=function(t){return He(this,t,s)},e.prototype.deleteAll=function(t){var e=k(t);return 0===e.size?this:this.withMutations((function(t){e.forEach((function(e){return t.remove(e)}))}))},e.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):Be()},e.prototype.sort=function(t){return dn($t(this,t))},e.prototype.sortBy=function(t,e){return dn($t(this,e,t))},e.prototype.map=function(t,e){var n=this;return this.withMutations((function(r){r.forEach((function(o,i){r.set(i,t.call(e,o,i,n))}))}))},e.prototype.__iterator=function(t,e){return new Me(this,t,e)},e.prototype.__iterate=function(t,e){var n=this,r=0;return this._root&&this._root.iterate((function(e){return r++,t(e[1],e[0],n)}),e),r},e.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?ze(this.size,this._root,t,this.__hash):0===this.size?Be():(this.__ownerID=t,this.__altered=!1,this)},e}(j);Te.isMap=lt;var Ce=Te.prototype;Ce[ut]=!0,Ce[r]=Ce.remove,Ce.removeAll=Ce.deleteAll,Ce.setIn=fe,Ce.removeIn=Ce.deleteIn=pe,Ce.update=de,Ce.updateIn=ge,Ce.merge=Ce.concat=me,Ce.mergeWith=ye,Ce.mergeDeep=_e,Ce.mergeDeepWith=Se,Ce.mergeIn=Oe,Ce.mergeDeepIn=Ee,Ce.withMutations=ke,Ce.wasAltered=xe,Ce.asImmutable=Pe,Ce["@@transducer/init"]=Ce.asMutable=je,Ce["@@transducer/step"]=function(t,e){return t.set(e[0],e[1])},Ce["@@transducer/result"]=function(t){return t.asImmutable()};var Re=function(t,e){this.ownerID=t,this.entries=e};Re.prototype.get=function(t,e,n,r){for(var o=this.entries,i=0,a=o.length;i=Je)return function(t,e,n,r){t||(t=new u);for(var o=new Ie(t,yt(n),[n,r]),i=0;i>>t)&a),s=this.bitmap;return 0==(s&i)?r:this.nodes[We(s&i-1)].get(t+o,e,n,r)},Ae.prototype.update=function(t,e,n,r,c,u,l){void 0===n&&(n=yt(r));var f=(0===e?n:n>>>e)&a,p=1<=Ge)return function(t,e,n,r,o){for(var a=0,s=new Array(i),c=0;0!==n;c++,n>>>=1)s[c]=1&n?e[a++]:void 0;return s[r]=o,new Ne(t,a+1,s)}(t,m,h,f,v);if(d&&!v&&2===m.length&&qe(m[1^g]))return m[1^g];if(d&&v&&1===m.length&&qe(v))return v;var b=t&&t===this.ownerID,w=d?v?h:h^p:h|p,_=d?v?Ke(m,g,v,b):function(t,e,n){var r=t.length-1;if(n&&e===r)return t.pop(),t;for(var o=new Array(r),i=0,a=0;a>>t)&a,s=this.nodes[i];return s?s.get(t+o,e,n,r):r},Ne.prototype.update=function(t,e,n,r,i,c,u){void 0===n&&(n=yt(r));var l=(0===e?n:n>>>e)&a,f=i===s,p=this.nodes,h=p[l];if(f&&!h)return this;var d=$e(h,t,e+o,n,r,i,c,u);if(d===h)return this;var g=this.count;if(h){if(!d&&--g>>n)&a,u=(0===n?r:r>>>n)&a,l=c===u?[Ve(t,e,n+o,r,i)]:(s=new Ie(e,r,i),c>1&1431655765))+(t>>2&858993459))+(t>>4)&252645135,t+=t>>8,127&(t+=t>>16)}function Ke(t,e,n,r){var o=r?t:Zt(t);return o[e]=n,o}var Je=i/4,Ge=i/2,Ye=i/4,Xe="@@__IMMUTABLE_LIST__@@";function Qe(t){return Boolean(t&&t[Xe])}var Ze=function(t){function e(e){var n=sn();if(null==e)return n;if(Qe(e))return e;var r=t(e),a=r.size;return 0===a?n:(ee(a),a>0&&a=0&&t=t.size||e<0)return t.withMutations((function(t){e<0?fn(t,e).set(0,n):fn(t,0,e+1).set(e,n)}));e+=t._origin;var r=t._tail,o=t._root,i={value:!1};e>=pn(t._capacity)?r=cn(r,t.__ownerID,0,e,n,i):o=cn(o,t.__ownerID,t._level,e,n,i);if(!i.value)return t;if(t.__ownerID)return t._root=o,t._tail=r,t.__hash=void 0,t.__altered=!0,t;return an(t._origin,t._capacity,t._level,o,r)}(this,t,e)},e.prototype.remove=function(t){return this.has(t)?0===t?this.shift():t===this.size-1?this.pop():this.splice(t,1):this},e.prototype.insert=function(t,e){return this.splice(t,0,e)},e.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=this._origin=this._capacity=0,this._level=o,this._root=this._tail=this.__hash=void 0,this.__altered=!0,this):sn()},e.prototype.push=function(){var t=arguments,e=this.size;return this.withMutations((function(n){fn(n,0,e+t.length);for(var r=0;r>>e&a;if(r>=this.array.length)return new en([],t);var i,s=0===r;if(e>0){var c=this.array[r];if((i=c&&c.removeBefore(t,e-o,n))===c&&s)return this}if(s&&!i)return this;var u=un(this,t);if(!s)for(var l=0;l>>e&a;if(i>=this.array.length)return this;if(e>0){var s=this.array[i];if((r=s&&s.removeAfter(t,e-o,n))===s&&i===this.array.length-1)return this}var c=un(this,t);return c.array.splice(i+1),r&&(c.array[i]=r),c};var nn,rn={};function on(t,e){var n=t._origin,r=t._capacity,a=pn(r),s=t._tail;return c(t._root,t._level,0);function c(t,u,l){return 0===u?function(t,o){var c=o===a?s&&s.array:t&&t.array,u=o>n?0:n-o,l=r-o;l>i&&(l=i);return function(){if(u===l)return rn;var t=e?--l:u++;return c&&c[t]}}(t,l):function(t,a,s){var u,l=t&&t.array,f=s>n?0:n-s>>a,p=1+(r-s>>a);p>i&&(p=i);return function(){for(;;){if(u){var t=u();if(t!==rn)return t;u=null}if(f===p)return rn;var n=e?--p:f++;u=c(l&&l[n],a-o,s+(n<>>n&a,f=t&&l0){var p=t&&t.array[l],h=cn(p,e,n-o,r,i,s);return h===p?t:((u=un(t,e)).array[l]=h,u)}return f&&t.array[l]===i?t:(s&&c(s),u=un(t,e),void 0===i&&l===u.array.length-1?u.array.pop():u.array[l]=i,u)}function un(t,e){return e&&t&&e===t.ownerID?t:new en(t?t.array.slice():[],e)}function ln(t,e){if(e>=pn(t._capacity))return t._tail;if(e<1<0;)n=n.array[e>>>r&a],r-=o;return n}}function fn(t,e,n){void 0!==e&&(e|=0),void 0!==n&&(n|=0);var r=t.__ownerID||new u,i=t._origin,s=t._capacity,c=i+e,l=void 0===n?s:n<0?s+n:i+n;if(c===i&&l===s)return t;if(c>=l)return t.clear();for(var f=t._level,p=t._root,h=0;c+h<0;)p=new en(p&&p.array.length?[void 0,p]:[],r),h+=1<<(f+=o);h&&(c+=h,i+=h,l+=h,s+=h);for(var d=pn(s),g=pn(l);g>=1<d?new en([],r):m;if(m&&g>d&&co;b-=o){var w=d>>>b&a;v=v.array[w]=un(v.array[w],r)}v.array[d>>>o&a]=m}if(l=g)c-=g,l-=g,f=o,p=null,y=y&&y.removeBefore(r,0,c);else if(c>i||g>>f&a;if(_!==g>>>f&a)break;_&&(h+=(1<i&&(p=p.removeBefore(r,f,c-h)),p&&g>>o<=i&&c.size>=2*a.size?(r=(o=c.filter((function(t,e){return void 0!==t&&u!==e}))).toKeyedSeq().map((function(t){return t[0]})).flip().toMap(),t.__ownerID&&(r.__ownerID=o.__ownerID=t.__ownerID)):(r=a.remove(e),o=u===c.size-1?c.pop():c.set(u,void 0))}else if(l){if(n===c.get(u)[1])return t;r=a,o=c.set(u,[e,n])}else r=a.set(e,c.size),o=c.set(c.size,[e,n]);return t.__ownerID?(t.size=r.size,t._map=r,t._list=o,t.__hash=void 0,t.__altered=!0,t):gn(r,o)}dn.isOrderedMap=ft,dn.prototype[D]=!0,dn.prototype[r]=dn.prototype.remove;var vn="@@__IMMUTABLE_STACK__@@";function bn(t){return Boolean(t&&t[vn])}var wn=function(t){function e(t){return null==t?En():bn(t)?t:En().pushAll(t)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.of=function(){return this(arguments)},e.prototype.toString=function(){return this.__toString("Stack [","]")},e.prototype.get=function(t,e){var n=this._head;for(t=f(this,t);n&&t--;)n=n.next;return n?n.value:e},e.prototype.peek=function(){return this._head&&this._head.value},e.prototype.push=function(){var t=arguments;if(0===arguments.length)return this;for(var e=this.size+arguments.length,n=this._head,r=arguments.length-1;r>=0;r--)n={value:t[r],next:n};return this.__ownerID?(this.size=e,this._head=n,this.__hash=void 0,this.__altered=!0,this):On(e,n)},e.prototype.pushAll=function(e){if(0===(e=t(e)).size)return this;if(0===this.size&&bn(e))return e;ee(e.size);var n=this.size,r=this._head;return e.__iterate((function(t){n++,r={value:t,next:r}}),!0),this.__ownerID?(this.size=n,this._head=r,this.__hash=void 0,this.__altered=!0,this):On(n,r)},e.prototype.pop=function(){return this.slice(1)},e.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):En()},e.prototype.slice=function(e,n){if(h(e,n,this.size))return this;var r=d(e,this.size);if(g(n,this.size)!==this.size)return t.prototype.slice.call(this,e,n);for(var o=this.size-r,i=this._head;r--;)i=i.next;return this.__ownerID?(this.size=o,this._head=i,this.__hash=void 0,this.__altered=!0,this):On(o,i)},e.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?On(this.size,this._head,t,this.__hash):0===this.size?En():(this.__ownerID=t,this.__altered=!1,this)},e.prototype.__iterate=function(t,e){var n=this;if(e)return new et(this.toArray()).__iterate((function(e,r){return t(e,r,n)}),e);for(var r=0,o=this._head;o&&!1!==t(o.value,r++,this);)o=o.next;return r},e.prototype.__iterator=function(t,e){if(e)return new et(this.toArray()).__iterator(t,e);var n=0,r=this._head;return new H((function(){if(r){var e=r.value;return r=r.next,$(t,n++,e)}return{value:void 0,done:!0}}))},e}(P);wn.isStack=bn;var _n,Sn=wn.prototype;function On(t,e,n,r){var o=Object.create(Sn);return o.size=t,o._head=e,o.__ownerID=n,o.__hash=r,o.__altered=!1,o}function En(){return _n||(_n=On(0))}Sn[vn]=!0,Sn.shift=Sn.pop,Sn.unshift=Sn.push,Sn.unshiftAll=Sn.pushAll,Sn.withMutations=ke,Sn.wasAltered=xe,Sn.asImmutable=Pe,Sn["@@transducer/init"]=Sn.asMutable=je,Sn["@@transducer/step"]=function(t,e){return t.unshift(e)},Sn["@@transducer/result"]=function(t){return t.asImmutable()};var kn="@@__IMMUTABLE_SET__@@";function jn(t){return Boolean(t&&t[kn])}function Pn(t){return jn(t)&&I(t)}function xn(t,e){if(t===e)return!0;if(!b(e)||void 0!==t.size&&void 0!==e.size&&t.size!==e.size||void 0!==t.__hash&&void 0!==e.__hash&&t.__hash!==e.__hash||_(t)!==_(e)||O(t)!==O(e)||I(t)!==I(e))return!1;if(0===t.size&&0===e.size)return!0;var n=!E(t);if(I(t)){var r=t.entries();return e.every((function(t,e){var o=r.next().value;return o&&ht(o[1],t)&&(n||ht(o[0],e))}))&&r.next().done}var o=!1;if(void 0===t.size)if(void 0===e.size)"function"==typeof t.cacheResult&&t.cacheResult();else{o=!0;var i=t;t=e,e=i}var a=!0,c=e.__iterate((function(e,r){if(n?!t.has(e):o?!ht(e,t.get(r,s)):!ht(t.get(r,s),e))return a=!1,!1}));return a&&t.size===c}function Tn(t,e){var n=function(n){t.prototype[n]=e[n]};return Object.keys(e).forEach(n),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(e).forEach(n),t}function Cn(t){if(!t||"object"!=typeof t)return t;if(!b(t)){if(!oe(t))return t;t=X(t)}if(_(t)){var e={};return t.__iterate((function(t,n){e[n]=Cn(t)})),e}var n=[];return t.__iterate((function(t){n.push(Cn(t))})),n}var Rn=function(t){function e(e){return null==e?Ln():jn(e)&&!I(e)?e:Ln().withMutations((function(n){var r=t(e);ee(r.size),r.forEach((function(t){return n.add(t)}))}))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.of=function(){return this(arguments)},e.fromKeys=function(t){return this(j(t).keySeq())},e.intersect=function(t){return(t=k(t).toArray()).length?Nn.intersect.apply(e(t.pop()),t):Ln()},e.union=function(t){return(t=k(t).toArray()).length?Nn.union.apply(e(t.pop()),t):Ln()},e.prototype.toString=function(){return this.__toString("Set {","}")},e.prototype.has=function(t){return this._map.has(t)},e.prototype.add=function(t){return Dn(this,this._map.set(t,t))},e.prototype.remove=function(t){return Dn(this,this._map.remove(t))},e.prototype.clear=function(){return Dn(this,this._map.clear())},e.prototype.map=function(t,e){var n=this,r=!1,o=Dn(this,this._map.mapEntries((function(o){var i=o[1],a=t.call(e,i,i,n);return a!==i&&(r=!0),[a,a]}),e));return r?o:this},e.prototype.union=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];return 0===(e=e.filter((function(t){return 0!==t.size}))).length?this:0!==this.size||this.__ownerID||1!==e.length?this.withMutations((function(n){for(var r=0;r=0&&e=0&&n>>-15,461845907),e=dt(e<<13|e>>>-13,5),e=(e+3864292196|0)^t,e=dt(e^e>>>16,2246822507),e=dt(e^e>>>13,3266489909),e=gt(e^e>>>16),e}(t.__iterate(n?e?function(t,e){r=31*r+Zn(yt(t),yt(e))|0}:function(t,e){r=r+Zn(yt(t),yt(e))|0}:e?function(t){r=31*r+yt(t)|0}:function(t){r=r+yt(t)|0}),r)}(this))}});var Hn=k.prototype;Hn[v]=!0,Hn[B]=Hn.values,Hn.toJSON=Hn.toArray,Hn.__toStringMapper=ie,Hn.inspect=Hn.toSource=function(){return this.toString()},Hn.chain=Hn.flatMap,Hn.contains=Hn.includes,Tn(j,{flip:function(){return Kt(this,Lt(this))},mapEntries:function(t,e){var n=this,r=0;return Kt(this,this.toSeq().map((function(o,i){return t.call(e,[i,o],r++,n)})).fromEntrySeq())},mapKeys:function(t,e){var n=this;return Kt(this,this.toSeq().flip().map((function(r,o){return t.call(e,r,o,n)})).flip())}});var $n=j.prototype;$n[w]=!0,$n[B]=Hn.entries,$n.toJSON=Bn,$n.__toStringMapper=function(t,e){return ie(e)+": "+ie(t)},Tn(P,{toKeyedSeq:function(){return new At(this,!1)},filter:function(t,e){return Kt(this,Ut(this,t,e,!1))},findIndex:function(t,e){var n=this.findEntry(t,e);return n?n[0]:-1},indexOf:function(t){var e=this.keyOf(t);return void 0===e?-1:e},lastIndexOf:function(t){var e=this.lastKeyOf(t);return void 0===e?-1:e},reverse:function(){return Kt(this,Ft(this,!1))},slice:function(t,e){return Kt(this,zt(this,t,e,!1))},splice:function(t,e){var n=arguments.length;if(e=Math.max(e||0,0),0===n||2===n&&!e)return this;t=d(t,t<0?this.count():this.size);var r=this.slice(0,t);return Kt(this,1===n?r:r.concat(Zt(arguments,2),this.slice(t+e)))},findLastIndex:function(t,e){var n=this.findLastEntry(t,e);return n?n[0]:-1},first:function(t){return this.get(0,t)},flatten:function(t){return Kt(this,Ht(this,t,!1))},get:function(t,e){return(t=f(this,t))<0||this.size===1/0||void 0!==this.size&&t>this.size?e:this.find((function(e,n){return n===t}),void 0,e)},has:function(t){return(t=f(this,t))>=0&&(void 0!==this.size?this.size===1/0||te?-1:0}function Zn(t,e){return t^e+2654435769+(t<<6)+(t>>2)|0}Vn.has=Hn.includes,Vn.contains=Vn.includes,Vn.keys=Vn.values,Tn(Q,$n),Tn(Z,qn),Tn(tt,Vn);var tr=function(t){function e(t){return null==t?or():Pn(t)?t:or().withMutations((function(e){var n=x(t);ee(n.size),n.forEach((function(t){return e.add(t)}))}))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.of=function(){return this(arguments)},e.fromKeys=function(t){return this(j(t).keySeq())},e.prototype.toString=function(){return this.__toString("OrderedSet {","}")},e}(Rn);tr.isOrderedSet=Pn;var er,nr=tr.prototype;function rr(t,e){var n=Object.create(nr);return n.size=t?t.size:0,n._map=t,n.__ownerID=e,n}function or(){return er||(er=rr(mn()))}nr[D]=!0,nr.zip=qn.zip,nr.zipWith=qn.zipWith,nr.zipAll=qn.zipAll,nr.__empty=or,nr.__make=rr;var ir=function(t,e){var n;!function(t){if(A(t))throw new Error("Can not call `Record` with an immutable Record as default values. Use a plain javascript object instead.");if(N(t))throw new Error("Can not call `Record` with an immutable Collection as default values. Use a plain javascript object instead.");if(null===t||"object"!=typeof t)throw new Error("Can not call `Record` with a non-object as default values. Use a plain javascript object instead.")}(t);var r=function(i){var a=this;if(i instanceof r)return i;if(!(this instanceof r))return new r(i);if(!n){n=!0;var s=Object.keys(t),c=o._indices={};o._name=e,o._keys=s,o._defaultValues=t;for(var u=0;u=0||Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r]);return n},q=function(t){return!1===(!(arguments.length>1&&void 0!==arguments[1])||arguments[1])?String(t):String(t).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")},V=function(t){var e=Y(t,b.TITLE),n=Y(t,L);if(n&&e)return n.replace(/%s/g,(function(){return Array.isArray(e)?e.join(""):e}));var r=Y(t,A);return e||r||void 0},W=function(t){return Y(t,I)||function(){}},K=function(t,e){return e.filter((function(e){return void 0!==e[t]})).map((function(e){return e[t]})).reduce((function(t,e){return H({},t,e)}),{})},J=function(t,e){return e.filter((function(t){return void 0!==t[b.BASE]})).map((function(t){return t[b.BASE]})).reverse().reduce((function(e,n){if(!e.length)for(var r=Object.keys(n),o=0;o=0;n--){var r=t[n];if(r.hasOwnProperty(e))return r[e]}return null},X=(r=Date.now(),function(t){var e=Date.now();e-r>16?(r=e,t(e)):setTimeout((function(){X(t)}),0)}),Q=function(t){return clearTimeout(t)},Z="undefined"!=typeof window?window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||X:n.g.requestAnimationFrame||X,tt="undefined"!=typeof window?window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||Q:n.g.cancelAnimationFrame||Q,et=function(t){return console&&"function"==typeof console.warn&&console.warn(t)},nt=null,rt=function(t,e){var n=t.baseTag,r=t.bodyAttributes,o=t.htmlAttributes,i=t.linkTags,a=t.metaTags,s=t.noscriptTags,c=t.onChangeClientState,u=t.scriptTags,l=t.styleTags,f=t.title,p=t.titleAttributes;at(b.BODY,r),at(b.HTML,o),it(f,p);var h={baseTag:st(b.BASE,n),linkTags:st(b.LINK,i),metaTags:st(b.META,a),noscriptTags:st(b.NOSCRIPT,s),scriptTags:st(b.SCRIPT,u),styleTags:st(b.STYLE,l)},d={},g={};Object.keys(h).forEach((function(t){var e=h[t],n=e.newTags,r=e.oldTags;n.length&&(d[t]=n),r.length&&(g[t]=h[t].oldTags)})),e&&e(),c(t,d,g)},ot=function(t){return Array.isArray(t)?t.join(""):t},it=function(t,e){void 0!==t&&document.title!==t&&(document.title=ot(t)),at(b.TITLE,e)},at=function(t,e){var n=document.getElementsByTagName(t)[0];if(n){for(var r=n.getAttribute(U),o=r?r.split(","):[],i=[].concat(o),a=Object.keys(e),s=0;s=0;f--)n.removeAttribute(i[f]);o.length===i.length?n.removeAttribute(U):n.getAttribute(U)!==a.join(",")&&n.setAttribute(U,a.join(","))}},st=function(t,e){var n=document.head||document.querySelector(b.HEAD),r=n.querySelectorAll(t+"["+U+"]"),o=Array.prototype.slice.call(r),i=[],a=void 0;return e&&e.length&&e.forEach((function(e){var n=document.createElement(t);for(var r in e)if(e.hasOwnProperty(r))if(r===E)n.innerHTML=e.innerHTML;else if(r===_)n.styleSheet?n.styleSheet.cssText=e.cssText:n.appendChild(document.createTextNode(e.cssText));else{var s=void 0===e[r]?"":e[r];n.setAttribute(r,s)}n.setAttribute(U,"true"),o.some((function(t,e){return a=e,n.isEqualNode(t)}))?o.splice(a,1):i.push(n)})),o.forEach((function(t){return t.parentNode.removeChild(t)})),i.forEach((function(t){return n.appendChild(t)})),{oldTags:o,newTags:i}},ct=function(t){return Object.keys(t).reduce((function(e,n){var r=void 0!==t[n]?n+'="'+t[n]+'"':""+n;return e?e+" "+r:r}),"")},ut=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(t).reduce((function(e,n){return e[R[n]||n]=t[n],e}),e)},lt=function(t,e,n){switch(t){case b.TITLE:return{toComponent:function(){return t=e.title,n=e.titleAttributes,(r={key:t})[U]=!0,o=ut(n,r),[h.createElement(b.TITLE,o,t)];var t,n,r,o},toString:function(){return function(t,e,n,r){var o=ct(n),i=ot(e);return o?"<"+t+" "+U+'="true" '+o+">"+q(i,r)+"":"<"+t+" "+U+'="true">'+q(i,r)+""}(t,e.title,e.titleAttributes,n)}};case m:case y:return{toComponent:function(){return ut(e)},toString:function(){return ct(e)}};default:return{toComponent:function(){return function(t,e){return e.map((function(e,n){var r,o=((r={key:n})[U]=!0,r);return Object.keys(e).forEach((function(t){var n=R[t]||t;if(n===E||n===_){var r=e.innerHTML||e.cssText;o.dangerouslySetInnerHTML={__html:r}}else o[n]=e[t]})),h.createElement(t,o)}))}(t,e)},toString:function(){return function(t,e,n){return e.reduce((function(e,r){var o=Object.keys(r).filter((function(t){return!(t===E||t===_)})).reduce((function(t,e){var o=void 0===r[e]?e:e+'="'+q(r[e],n)+'"';return t?t+" "+o:o}),""),i=r.innerHTML||r.cssText||"",a=-1===F.indexOf(t);return e+"<"+t+" "+U+'="true" '+o+(a?"/>":">"+i+"")}),"")}(t,e,n)}}}},ft=function(t){var e=t.baseTag,n=t.bodyAttributes,r=t.encode,o=t.htmlAttributes,i=t.linkTags,a=t.metaTags,s=t.noscriptTags,c=t.scriptTags,u=t.styleTags,l=t.title,f=void 0===l?"":l,p=t.titleAttributes;return{base:lt(b.BASE,e,r),bodyAttributes:lt(m,n,r),htmlAttributes:lt(y,o,r),link:lt(b.LINK,i,r),meta:lt(b.META,a,r),noscript:lt(b.NOSCRIPT,s,r),script:lt(b.SCRIPT,c,r),style:lt(b.STYLE,u,r),title:lt(b.TITLE,{title:f,titleAttributes:p},r)}},pt=l()((function(t){return{baseTag:J([S,C],t),bodyAttributes:K(m,t),defer:Y(t,N),encode:Y(t,D),htmlAttributes:K(y,t),linkTags:G(b.LINK,[x,S],t),metaTags:G(b.META,[j,w,O,P,k],t),noscriptTags:G(b.NOSCRIPT,[E],t),onChangeClientState:W(t),scriptTags:G(b.SCRIPT,[T,E],t),styleTags:G(b.STYLE,[_],t),title:V(t),titleAttributes:K(v,t)}}),(function(t){nt&&tt(nt),t.defer?nt=Z((function(){rt(t,(function(){nt=null}))})):(rt(t),nt=null)}),ft)((function(){return null})),ht=(o=pt,a=i=function(t){function e(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.apply(this,arguments))}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.shouldComponentUpdate=function(t){return!p()(this.props,t)},e.prototype.mapNestedChildrenToProps=function(t,e){if(!e)return null;switch(t.type){case b.SCRIPT:case b.NOSCRIPT:return{innerHTML:e};case b.STYLE:return{cssText:e}}throw new Error("<"+t.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")},e.prototype.flattenArrayTypeChildren=function(t){var e,n=t.child,r=t.arrayTypeChildren,o=t.newChildProps,i=t.nestedChildren;return H({},r,((e={})[n.type]=[].concat(r[n.type]||[],[H({},o,this.mapNestedChildrenToProps(n,i))]),e))},e.prototype.mapObjectTypeChildren=function(t){var e,n,r=t.child,o=t.newProps,i=t.newChildProps,a=t.nestedChildren;switch(r.type){case b.TITLE:return H({},o,((e={})[r.type]=a,e.titleAttributes=H({},i),e));case b.BODY:return H({},o,{bodyAttributes:H({},i)});case b.HTML:return H({},o,{htmlAttributes:H({},i)})}return H({},o,((n={})[r.type]=H({},i),n))},e.prototype.mapArrayTypeChildrenToProps=function(t,e){var n=H({},e);return Object.keys(t).forEach((function(e){var r;n=H({},n,((r={})[e]=t[e],r))})),n},e.prototype.warnOnInvalidChildren=function(t,e){return!0},e.prototype.mapChildrenToProps=function(t,e){var n=this,r={};return h.Children.forEach(t,(function(t){if(t&&t.props){var o=t.props,i=o.children,a=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(t).reduce((function(e,n){return e[M[n]||n]=t[n],e}),e)}($(o,["children"]));switch(n.warnOnInvalidChildren(t,i),t.type){case b.LINK:case b.META:case b.NOSCRIPT:case b.SCRIPT:case b.STYLE:r=n.flattenArrayTypeChildren({child:t,arrayTypeChildren:r,newChildProps:a,nestedChildren:i});break;default:e=n.mapObjectTypeChildren({child:t,newProps:e,newChildProps:a,nestedChildren:i})}}})),e=this.mapArrayTypeChildrenToProps(r,e)},e.prototype.render=function(){var t=this.props,e=t.children,n=$(t,["children"]),r=H({},n);return e&&(r=this.mapChildrenToProps(e,r)),h.createElement(o,r)},B(e,null,[{key:"canUseDOM",set:function(t){o.canUseDOM=t}}]),e}(h.Component),i.propTypes={base:c().object,bodyAttributes:c().object,children:c().oneOfType([c().arrayOf(c().node),c().node]),defaultTitle:c().string,defer:c().bool,encodeSpecialCharacters:c().bool,htmlAttributes:c().object,link:c().arrayOf(c().object),meta:c().arrayOf(c().object),noscript:c().arrayOf(c().object),onChangeClientState:c().func,script:c().arrayOf(c().object),style:c().arrayOf(c().object),title:c().string,titleAttributes:c().object,titleTemplate:c().string},i.defaultProps={defer:!0,encodeSpecialCharacters:!0},i.peek=o.peek,i.rewind=function(){var t=o.rewind();return t||(t=ft({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}})),t},a);ht.renderStatic=ht.rewind},207:function(t,e,n){"use strict";var r=n(6540),o={stream:!0},i=new Map,a=Symbol.for("react.element"),s=Symbol.for("react.lazy"),c=Symbol.for("react.default_value"),u=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ContextRegistry;function l(t,e,n){this._status=t,this._value=e,this._response=n}function f(t){switch(t._status){case 3:return t._value;case 1:var e=JSON.parse(t._value,t._response._fromJSON);return t._status=3,t._value=e;case 2:for(var r=(e=t._value).chunks,o=0;o{d=(null==m?void 0:m.type)&&!d?150:d,j&&m.type.match(/top|bottom|left|right/)&&(m=s.modalAnimation.scaleUp),(0,i.useEffect)((()=>{(0,c.checkRequiredProps)({id:e,consumer:n,isOpen:f,setOpen:p}),(0,c.checkCustomStyle)({id:e,width:b,height:w,backgroundColor:S})}),[]);const P=(0,c.hash)(e),x=(0,i.useMemo)((()=>(0,a.createModalContext)(e)),[]),T=(0,i.useMemo)((()=>(0,a.createModalContextProps)(e)),[]),[C,R]=(0,i.useState)(!1),[A,N]=(0,i.useState)(!1),[D,I]=(0,i.useState)({}),L=(0,i.useCallback)((t=>{if((0,c.checkPropsCondition)(t))return I(t);I({})}),[D]),M=(0,i.useCallback)((t=>r(void 0,void 0,void 0,(function*(){p(!0),L(t),C||R(!0),O&&(N(!0),yield O(),N(!1))}))),[D]),F=(0,i.useCallback)((()=>p(!1)),[]),U=(0,i.useCallback)((({key:t})=>{"Escape"===t&&[...l][l.size-1]===e&&F()}),[]);(0,i.useEffect)((()=>{if(!f)return window.removeEventListener("keyup",U);window.addEventListener("keyup",U),l.add(e)}),[f]);const z=(0,i.useMemo)((()=>({open:M,close:F})),[]),B=(0,i.useMemo)((()=>Object.assign({},D)),[D]);return(0,o.jsx)(T.Provider,Object.assign({value:B},{children:(0,o.jsxs)(x.Provider,Object.assign({value:z},{children:[n,(0,o.jsx)(u.default,Object.assign({id:e,hashId:P,modalSet:l,initialization:C,pending:A,isOpen:f,close:F,allowClickOutside:h,spinner:E,spinnerColor:k,duration:d,modalStyle:(0,c.getModalStyle)({hashId:P,duration:d,overlayColor:g,vertical:y,horizontal:v,animation:m,width:b,height:w,radius:_,backgroundColor:S}),draggable:j},{children:t}))]}))}))}},6326:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const r=n(6540),o=n(3583);e.default=({children:t,value:e=[]})=>(e.length||console.error(o.ERROR_MESSAGES.MODAL_PROVIDER_EMPTY_VALUE),e.reduce(((t,e)=>(0,r.createElement)(e,null,t)),t))},3702:function(t,e,n){"use strict";var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))((function(o,i){function a(t){try{c(r.next(t))}catch(e){i(e)}}function s(t){try{c(r.throw(t))}catch(e){i(e)}}function c(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,s)}c((r=r.apply(t,e||[])).next())}))};Object.defineProperty(e,"__esModule",{value:!0});const o=n(4848),i=n(961),a=n(6540),s=n(4086),c=n(4811),u=n(3583),l=n(4607);e.default=({children:t,id:e,hashId:n,modalSet:f,initialization:p,pending:h,isOpen:d,close:g,allowClickOutside:m,duration:y,modalStyle:v,spinner:b,spinnerColor:w,draggable:_})=>{const[S,O]=(0,a.useState)(!1);return(0,a.useEffect)((()=>{r(void 0,void 0,void 0,(function*(){if(!d){yield(0,l.defer)(y);const t=(0,l.$)(`.${u.PREFIX.PORTAL}${n}`),e=(0,l.$)(`[data-modal-style="${u.PREFIX.PORTAL}${n}`);return t&&document.body.removeChild(t),e&&document.head.removeChild(e),O(!1)}const t=document.createElement("div");t.classList.add(`${u.PREFIX.PORTAL}${n}`),document.body.appendChild(t);const e=document.createElement("style");e.setAttribute("data-modal-style",`${u.PREFIX.PORTAL}${n}`),e.textContent=v,document.head.appendChild(e),O(!0)}))}),[d]),(0,a.useEffect)((()=>{p&&!d&&f.delete(e)}),[d]),S&&p?h?(0,o.jsx)(c.default,{spinner:b,spinnerColor:w}):i.createPortal((0,o.jsx)(s.default,Object.assign({isOpen:d,close:g,allowClickOutside:m,draggable:_},{children:t})),(0,l.$)(`.${u.PREFIX.PORTAL}${n}`)):null}},4086:function(t,e,n){"use strict";var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))((function(o,i){function a(t){try{c(r.next(t))}catch(e){i(e)}}function s(t){try{c(r.throw(t))}catch(e){i(e)}}function c(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,s)}c((r=r.apply(t,e||[])).next())}))};Object.defineProperty(e,"__esModule",{value:!0});const o=n(4848),i=n(6540),a=n(4607),s=n(3583);e.default=({children:t,isOpen:e,close:n,allowClickOutside:c,draggable:u})=>{const[l,f]=(0,i.useState)(s.OVERLAY_CLASS_NAME.BASE),[p,h]=(0,i.useState)(s.CLASS_NAME.BASE),d=(0,i.useRef)(null),g=(0,i.useCallback)((({target:t})=>{var e;!(null===(e=d.current)||void 0===e?void 0:e.contains(t))&&c&&n()}),[]),m=(0,i.useCallback)((t=>{u&&(0,a.startDragHandler)(t)}),[]);return(0,i.useEffect)((()=>{r(void 0,void 0,void 0,(function*(){e?(yield(0,a.defer)(30),f((t=>`${t} ${s.OVERLAY_CLASS_NAME.AFTER_OPEN}`)),h((t=>`${t} ${s.CLASS_NAME.AFTER_OPEN}`))):(f((t=>`${t} ${s.OVERLAY_CLASS_NAME.BEFORE_CLOSE}`)),h((t=>`${t} ${s.CLASS_NAME.BEFORE_CLOSE}`)))}))}),[e]),(0,o.jsx)("div",Object.assign({className:l,onClick:g},{children:(0,o.jsx)("div",Object.assign({className:p,onMouseDown:m,ref:d},{children:(0,o.jsx)("div",{children:t})}))}))}},4811:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const r=n(4848),o=n(5609);e.default=({spinner:t,spinnerColor:e})=>(0,r.jsx)("div",Object.assign({style:{position:"fixed",top:0,bottom:0,right:0,left:0,width:"100%",height:"100%",outline:"0",zIndex:10001,display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"rgba(0, 0, 0, 0)"}},{children:t||!1!==t&&(0,r.jsx)(o.default,{spinnerColor:e})}))},5609:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const r=n(4848);e.default=({spinnerColor:t})=>(0,r.jsxs)("svg",Object.assign({width:"200px",height:"200px",viewBox:"0 0 100 100",preserveAspectRatio:"xMidYMid"},{children:[(0,r.jsx)("g",Object.assign({transform:"rotate(0 50 50)"},{children:(0,r.jsx)("rect",Object.assign({x:"49",y:"35.75",rx:"0",ry:"0",width:"1.675",height:"6.3",fill:t},{children:(0,r.jsx)("animate",{attributeName:"opacity",values:"1;0",keyTimes:"0;1",dur:"1s",begin:"-0.9166666666666666s",repeatCount:"indefinite"})}))})),(0,r.jsx)("g",Object.assign({transform:"rotate(30 50 50)"},{children:(0,r.jsx)("rect",Object.assign({x:"49",y:"35.75",rx:"0",ry:"0",width:"1.675",height:"6.3",fill:t},{children:(0,r.jsx)("animate",{attributeName:"opacity",values:"1;0",keyTimes:"0;1",dur:"1s",begin:"-0.8333333333333334s",repeatCount:"indefinite"})}))})),(0,r.jsx)("g",Object.assign({transform:"rotate(60 50 50)"},{children:(0,r.jsx)("rect",Object.assign({x:"49",y:"35.75",rx:"0",ry:"0",width:"1.675",height:"6.3",fill:t},{children:(0,r.jsx)("animate",{attributeName:"opacity",values:"1;0",keyTimes:"0;1",dur:"1s",begin:"-0.75s",repeatCount:"indefinite"})}))})),(0,r.jsx)("g",Object.assign({transform:"rotate(90 50 50)"},{children:(0,r.jsx)("rect",Object.assign({x:"49",y:"35.75",rx:"0",ry:"0",width:"1.675",height:"6.3",fill:t},{children:(0,r.jsx)("animate",{attributeName:"opacity",values:"1;0",keyTimes:"0;1",dur:"1s",begin:"-0.6666666666666666s",repeatCount:"indefinite"})}))})),(0,r.jsx)("g",Object.assign({transform:"rotate(120 50 50)"},{children:(0,r.jsx)("rect",Object.assign({x:"49",y:"35.75",rx:"0",ry:"0",width:"1.675",height:"6.3",fill:t},{children:(0,r.jsx)("animate",{attributeName:"opacity",values:"1;0",keyTimes:"0;1",dur:"1s",begin:"-0.5833333333333334s",repeatCount:"indefinite"})}))})),(0,r.jsx)("g",Object.assign({transform:"rotate(150 50 50)"},{children:(0,r.jsx)("rect",Object.assign({x:"49",y:"35.75",rx:"0",ry:"0",width:"1.675",height:"6.3",fill:t},{children:(0,r.jsx)("animate",{attributeName:"opacity",values:"1;0",keyTimes:"0;1",dur:"1s",begin:"-0.5s",repeatCount:"indefinite"})}))})),(0,r.jsx)("g",Object.assign({transform:"rotate(180 50 50)"},{children:(0,r.jsx)("rect",Object.assign({x:"49",y:"35.75",rx:"0",ry:"0",width:"1.675",height:"6.3",fill:t},{children:(0,r.jsx)("animate",{attributeName:"opacity",values:"1;0",keyTimes:"0;1",dur:"1s",begin:"-0.4166666666666667s",repeatCount:"indefinite"})}))})),(0,r.jsx)("g",Object.assign({transform:"rotate(210 50 50)"},{children:(0,r.jsx)("rect",Object.assign({x:"49",y:"35.75",rx:"0",ry:"0",width:"1.675",height:"6.3",fill:t},{children:(0,r.jsx)("animate",{attributeName:"opacity",values:"1;0",keyTimes:"0;1",dur:"1s",begin:"-0.3333333333333333s",repeatCount:"indefinite"})}))})),(0,r.jsx)("g",Object.assign({transform:"rotate(240 50 50)"},{children:(0,r.jsx)("rect",Object.assign({x:"49",y:"35.75",rx:"0",ry:"0",width:"1.675",height:"6.3",fill:t},{children:(0,r.jsx)("animate",{attributeName:"opacity",values:"1;0",keyTimes:"0;1",dur:"1s",begin:"-0.25s",repeatCount:"indefinite"})}))})),(0,r.jsx)("g",Object.assign({transform:"rotate(270 50 50)"},{children:(0,r.jsx)("rect",Object.assign({x:"49",y:"35.75",rx:"0",ry:"0",width:"1.675",height:"6.3",fill:t},{children:(0,r.jsx)("animate",{attributeName:"opacity",values:"1;0",keyTimes:"0;1",dur:"1s",begin:"-0.16666666666666666s",repeatCount:"indefinite"})}))})),(0,r.jsx)("g",Object.assign({transform:"rotate(300 50 50)"},{children:(0,r.jsx)("rect",Object.assign({x:"49",y:"35.75",rx:"0",ry:"0",width:"1.675",height:"6.3",fill:t},{children:(0,r.jsx)("animate",{attributeName:"opacity",values:"1;0",keyTimes:"0;1",dur:"1s",begin:"-0.08333333333333333s",repeatCount:"indefinite"})}))})),(0,r.jsx)("g",Object.assign({transform:"rotate(330 50 50)"},{children:(0,r.jsx)("rect",Object.assign({x:"49",y:"35.75",rx:"0",ry:"0",width:"1.675",height:"6.3",fill:t},{children:(0,r.jsx)("animate",{attributeName:"opacity",values:"1;0",keyTimes:"0;1",dur:"1s",begin:"0s",repeatCount:"indefinite"})}))}))]}))},3583:function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ERROR_MESSAGES=e.PREFIX=e.CLASS_NAME=e.OVERLAY_CLASS_NAME=void 0;e.OVERLAY_CLASS_NAME={BASE:"overlay-base",AFTER_OPEN:"overlay-after",BEFORE_CLOSE:"overlay-before"};e.CLASS_NAME={BASE:"content-base",AFTER_OPEN:"content-after",BEFORE_CLOSE:"content-before"};e.PREFIX={HASH:"modal-",PORTAL:"portal-"};e.ERROR_MESSAGES={MODAL_PROVIDER_EMPTY_VALUE:"react-simple-modal-provider: ModalProvider Warning! Value props is empty.",MODAL_ID_TYPE_ERROR:t=>`react-simple-modal-provider: Modal ID(${t}): Modal Error! id props must be a string type.`,MODAL_NOT_ENOUGH_PROPS:t=>`react-simple-modal-provider: Modal ID(${t}): Modal Error! Not enough required props data. Check the Modal props. (id, consumer, isOpen, setOpen)`,MODAL_ID_INVALID_FROM_CONTEXT:t=>`react-simple-modal-provider: context Error! ID "${t}" is not valid`,MODAL_ID_INVALID_FROM:(t,e)=>`react-simple-modal-provider: ${e} Error! ID "${t}" is not valid`,MODAL_ID_NOT_EXIST:(t,e)=>`react-simple-modal-provider: ${e} Error! ID "${t}" not exist. Check the order of value props passed to "ModalProvider".`,MODAL_CUSTOM_STYLE_WARN:t=>`react-simple-modal-provider: Modal ID(${t}): The backgroundColor is transparent. Please specify the backgroundColor.`}},7134:function(t,e,n){"use strict";e.hS=e.Zn=e.uD=void 0;const r=n(6327);var o=n(8223);Object.defineProperty(e,"uD",{enumerable:!0,get:function(){return o.default}});var i=n(6326);Object.defineProperty(e,"Zn",{enumerable:!0,get:function(){return i.default}});var a=n(2592);Object.defineProperty(e,"hS",{enumerable:!0,get:function(){return a.useModal}});var s=n(6801);e.Ay=r.default},6801:function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.modalAnimation=void 0;e.modalAnimation={scaleUp:{type:"transform, opacity",base:"transform: scale(0.3); opacity: 0;",before:"transform: scale(0.3); opacity: 0;",after:"transform: scale(1); opacity: 1;"},slideDown:{type:"transform, opacity",base:"transform: translateY(-50px); opacity: 0;",before:"transform: translateY(50px); opacity: 0;",after:"transform: translateY(0px); opacity: 1;"},slideUp:{type:"transform, opacity",base:"transform: translateY(50px); opacity: 0;",before:"transform: translateY(-50px); opacity: 0;",after:"transform: translateY(0px); opacity: 1;"}}},2592:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.useModalProps=e.useModal=e.createModalContextProps=e.createModalContext=void 0;const r=n(6540),o=n(3583);e.createModalContext=t=>{if(!t)throw new Error(o.ERROR_MESSAGES.MODAL_ID_INVALID_FROM_CONTEXT(t));if(i.has(t))return i.get(t);const e=(0,r.createContext)({});return i.set(t,e),e};e.createModalContextProps=t=>{if(!t)throw new Error(o.ERROR_MESSAGES.MODAL_ID_INVALID_FROM_CONTEXT(t));if(a.has(t))return a.get(t);const e=(0,r.createContext)({});return a.set(t,e),e};e.useModal=t=>{if(!t)throw new Error(o.ERROR_MESSAGES.MODAL_ID_INVALID_FROM(t,"useModal"));if(!i.has(t))throw new Error(o.ERROR_MESSAGES.MODAL_ID_NOT_EXIST(t,"useModal"));return(0,r.useContext)(i.get(t))};e.useModalProps=t=>{if(!t)throw new Error(o.ERROR_MESSAGES.MODAL_ID_INVALID_FROM(t,"useModalProps"));if(!a.has(t))throw new Error(o.ERROR_MESSAGES.MODAL_ID_NOT_EXIST(t,"useModalProps"));return(0,r.useContext)(a.get(t))};const i=new Map,a=new Map},8223:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const r=n(6540);e.default=()=>{const[t,e]=(0,r.useState)(!1);return[t,e]}},4607:function(t,e,n){"use strict";var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))((function(o,i){function a(t){try{c(r.next(t))}catch(e){i(e)}}function s(t){try{c(r.throw(t))}catch(e){i(e)}}function c(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,s)}c((r=r.apply(t,e||[])).next())}))};Object.defineProperty(e,"__esModule",{value:!0}),e.checkCustomStyle=e.checkPropsCondition=e.startDragHandler=e.throttle=e.getModalStyle=e.checkRequiredProps=e.defer=e.hash=e.stateBundler=e.$=void 0;const o=n(3583);e.$=(t,e=document)=>e.querySelector(t);e.stateBundler=(t=[],e)=>t.forEach((t=>t(e)));e.hash=t=>{let e=0,n=0,r=t.length;for(;nr(void 0,void 0,void 0,(function*(){return yield new Promise((e=>setTimeout(e,t)))}));e.checkRequiredProps=({id:t,consumer:e,isOpen:n,setOpen:r})=>{if("string"!=typeof t)throw new Error(o.ERROR_MESSAGES.MODAL_ID_TYPE_ERROR(t));if(!t||!e||void 0===n||!r)throw new Error(o.ERROR_MESSAGES.MODAL_NOT_ENOUGH_PROPS(t))};e.getModalStyle=({hashId:t,duration:e,vertical:n,horizontal:r,width:i,height:a,radius:s,overlayColor:c,backgroundColor:u,animation:l})=>`\n .${o.PREFIX.PORTAL}${t} .overlay-base {\n position: fixed;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n width: 100%;\n height: 100%;\n outline: 0;\n z-index: 9999;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: rgba(0, 0, 0, 0);\n transition-property: background-color, opacity;\n transition-timing-function: ease-in-out;\n transition-duration: ${e}ms;\n }\n\n .${o.PREFIX.PORTAL}${t} .overlay-after {\n background-color: ${c};\n }\n\n .${o.PREFIX.PORTAL}${t} .overlay-before {\n background-color: rgba(0, 0, 0, 0);\n }\n\n .${o.PREFIX.PORTAL}${t} .content-base {\n position: relative;\n bottom: ${n}px;\n left: ${r}px;\n outline: 0;\n transition-timing-function: ease-in-out;\n transition-property: ${l.type};\n ${l.base};\n transition-duration: ${e}ms;\n visibility: hidden;\n pointer-events: none;\n\n min-width: ${i}px;\n min-height: ${a}px;\n border-radius: ${s}px;\n background-color: ${u};\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .${o.PREFIX.PORTAL}${t} .content-after {\n visibility: visible;\n pointer-events: auto;\n ${l.after};\n }\n\n .${o.PREFIX.PORTAL}${t} .content-before {\n ${l.before};\n }\n `.replace(/\n| /g,"");const i=(t,e)=>{let n=null;return r=>{n||(n=setTimeout((()=>{t.call(null,r),n=null}),e))}};e.throttle=i;e.startDragHandler=t=>{const{currentTarget:e,clientX:n,clientY:r}=t,o=({clientX:t,clientY:n})=>{e.style.top=n-u+"px",e.style.left=t-c+"px"},a=i((({clientX:t,clientY:e})=>{if(t<=0||e<=0||t>=innerWidth||e>=innerHeight)return s();o({clientX:t,clientY:e})}),10),s=()=>{document.removeEventListener("mousemove",a),e.onmouseup=null};document.addEventListener("mousemove",a),e.onmouseup=s;const c=n-e.getBoundingClientRect().left,u=r-e.getBoundingClientRect().top;o({clientX:n,clientY:r}),e.style.width=e.offsetWidth+"px",e.style.height=e.offsetHeight+"px",e.style.position="fixed",e.style.zIndex="10000"};e.checkPropsCondition=t=>null!==t&&"object"==typeof t&&t.constructor&&"SyntheticBaseEvent"!==t.constructor.name;e.checkCustomStyle=({id:t,width:e,height:n,backgroundColor:r})=>{(e||n)&&"transparent"===r&&console.warn(o.ERROR_MESSAGES.MODAL_CUSTOM_STYLE_WARN(t))}},9448:function(t,e,n){!function(t){"use strict";function e(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}function r(t,e){Object.defineProperty(this,"kind",{value:t,enumerable:!0}),e&&e.length&&Object.defineProperty(this,"path",{value:e,enumerable:!0})}function o(t,e,n){o.super_.call(this,"E",t),Object.defineProperty(this,"lhs",{value:e,enumerable:!0}),Object.defineProperty(this,"rhs",{value:n,enumerable:!0})}function i(t,e){i.super_.call(this,"N",t),Object.defineProperty(this,"rhs",{value:e,enumerable:!0})}function a(t,e){a.super_.call(this,"D",t),Object.defineProperty(this,"lhs",{value:e,enumerable:!0})}function s(t,e,n){s.super_.call(this,"A",t),Object.defineProperty(this,"index",{value:e,enumerable:!0}),Object.defineProperty(this,"item",{value:n,enumerable:!0})}function c(t,e,n){var r=t.slice((n||e)+1||t.length);return t.length=e<0?t.length+e:e,t.push.apply(t,r),t}function u(t){var e=void 0===t?"undefined":C(t);return"object"!==e?e:t===Math?"math":null===t?"null":Array.isArray(t)?"array":"[object Date]"===Object.prototype.toString.call(t)?"date":"function"==typeof t.toString&&/^\/.*\//.test(t.toString())?"regexp":"object"}function l(t,e,n,r,f,p,h){h=h||[];var d=(f=f||[]).slice(0);if(void 0!==p){if(r){if("function"==typeof r&&r(d,p))return;if("object"===(void 0===r?"undefined":C(r))){if(r.prefilter&&r.prefilter(d,p))return;if(r.normalize){var g=r.normalize(d,p,t,e);g&&(t=g[0],e=g[1])}}}d.push(p)}"regexp"===u(t)&&"regexp"===u(e)&&(t=t.toString(),e=e.toString());var m=void 0===t?"undefined":C(t),y=void 0===e?"undefined":C(e),v="undefined"!==m||h&&h[h.length-1].lhs&&h[h.length-1].lhs.hasOwnProperty(p),b="undefined"!==y||h&&h[h.length-1].rhs&&h[h.length-1].rhs.hasOwnProperty(p);if(!v&&b)n(new i(d,e));else if(!b&&v)n(new a(d,t));else if(u(t)!==u(e))n(new o(d,t,e));else if("date"===u(t)&&t-e!=0)n(new o(d,t,e));else if("object"===m&&null!==t&&null!==e)if(h.filter((function(e){return e.lhs===t})).length)t!==e&&n(new o(d,t,e));else{if(h.push({lhs:t,rhs:e}),Array.isArray(t)){var w;for(t.length,w=0;w=e.length?n(new s(d,w,new a(void 0,t[w]))):l(t[w],e[w],n,r,d,w,h);for(;w=0?(l(t[o],e[o],n,r,d,o,h),S=c(S,a)):l(t[o],void 0,n,r,d,o,h)})),S.forEach((function(t){l(void 0,e[t],n,r,d,t,h)}))}h.length=h.length-1}else t!==e&&("number"===m&&isNaN(t)&&isNaN(e)||n(new o(d,t,e)))}function f(t,e,n,r){return r=r||[],l(t,e,(function(t){t&&r.push(t)}),n),r.length?r:void 0}function p(t,e,n){if(n.path&&n.path.length){var r,o=t[e],i=n.path.length-1;for(r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=Object.assign({},D,t),n=e.logger,r=e.stateTransformer,o=e.errorTransformer,i=e.predicate,a=e.logErrors,s=e.diffPredicate;if(void 0===n)return function(){return function(t){return function(e){return t(e)}}};if(t.getState&&t.dispatch)return console.error("[redux-logger] redux-logger not installed. Make sure to pass logger instance as middleware:\n// Logger with default options\nimport { logger } from 'redux-logger'\nconst store = createStore(\n reducer,\n applyMiddleware(logger)\n)\n// Or you can create your own logger with custom options http://bit.ly/redux-logger-options\nimport createLogger from 'redux-logger'\nconst logger = createLogger({\n // ...options\n});\nconst store = createStore(\n reducer,\n applyMiddleware(logger)\n)\n"),function(){return function(t){return function(e){return t(e)}}};var c=[];return function(t){var n=t.getState;return function(t){return function(u){if("function"==typeof i&&!i(n,u))return t(u);var l={};c.push(l),l.started=T.now(),l.startedTime=new Date,l.prevState=r(n()),l.action=u;var f=void 0;if(a)try{f=t(u)}catch(t){l.error=o(t)}else f=t(u);l.took=T.now()-l.started,l.nextState=r(n());var p=e.diff&&"function"==typeof s?s(n,u):e.diff;if(S(c,Object.assign({},e,{diff:p})),c.length=0,l.error)throw l.error;return f}}}}var E,k,j=function(t,e){return new Array(e+1).join(t)},P=function(t,e){return j("0",e-t.toString().length)+t},x=function(t){return P(t.getHours(),2)+":"+P(t.getMinutes(),2)+":"+P(t.getSeconds(),2)+"."+P(t.getMilliseconds(),3)},T="undefined"!=typeof performance&&null!==performance&&"function"==typeof performance.now?performance:Date,C="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},R=function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e0&&void 0!==arguments[0]?arguments[0]:{},e=t.dispatch,n=t.getState;return"function"==typeof e||"function"==typeof n?O()({dispatch:e,getState:n}):void console.error("\n[redux-logger v3] BREAKING CHANGE\n[redux-logger v3] Since 3.0.0 redux-logger exports by default logger with default settings.\n[redux-logger v3] Change\n[redux-logger v3] import createLogger from 'redux-logger'\n[redux-logger v3] to\n[redux-logger v3] import { createLogger } from 'redux-logger'\n")};t.defaults=D,t.createLogger=O,t.logger=I,t.default=I,Object.defineProperty(t,"__esModule",{value:!0})}(e)},7639:function(t,e){"use strict";function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}e.A=function(t,e,i,a){a.debug;var s=function(t){for(var e=1;e((t,e)=>{const{forward:n=[],...r}=t||{},o=JSON.stringify(r,((t,e)=>("function"==typeof e&&(e=String(e)).startsWith(t+"(")&&(e="function "+e),e)));return["!(function(w,p,f,c){",Object.keys(r).length>0?`c=w[p]=Object.assign(w[p]||{},${o});`:"c=w[p]=w[p]||{};","c[f]=(c[f]||[])",n.length>0?`.concat(${JSON.stringify(n)})`:"","})(window,'partytown','forward');",e].join("")})(t,'/* Partytown 0.7.6 - MIT builder.io */\n!function(t,e,n,i,r,o,a,d,s,c,p,l){function u(){l||(l=1,"/"==(a=(o.lib||"/~partytown/")+(o.debug?"debug/":""))[0]&&(s=e.querySelectorAll(\'script[type="text/partytown"]\'),i!=t?i.dispatchEvent(new CustomEvent("pt1",{detail:t})):(d=setTimeout(f,1e4),e.addEventListener("pt0",w),r?h(1):n.serviceWorker?n.serviceWorker.register(a+(o.swPath||"partytown-sw.js"),{scope:a}).then((function(t){t.active?h():t.installing&&t.installing.addEventListener("statechange",(function(t){"activated"==t.target.state&&h()}))}),console.error):f())))}function h(t){c=e.createElement(t?"script":"iframe"),t||(c.setAttribute("style","display:block;width:0;height:0;border:0;visibility:hidden"),c.setAttribute("aria-hidden",!0)),c.src=a+"partytown-"+(t?"atomics.js?v=0.7.6":"sandbox-sw.html?"+Date.now()),e.body.appendChild(c)}function f(n,r){for(w(),i==t&&(o.forward||[]).map((function(e){delete t[e.split(".")[0]]})),n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0||(o[n]=t[n]);return o}const u=t=>{const{search:e,hash:n,href:r,origin:o,protocol:i,host:a,hostname:s,port:c}=t.location;let{pathname:u}=t.location;return!u&&r&&p&&(u=new URL(r).pathname),{pathname:encodeURI(decodeURI(u)),search:e,hash:n,href:r,origin:o,protocol:i,host:a,hostname:s,port:c,state:t.history.state,key:t.history.state&&t.history.state.key||"initial"}},l=(t,e)=>{let n=[],r=u(t),o=!1,i=()=>{};return{get location(){return r},get transitioning(){return o},_onTransitionComplete(){o=!1,i()},listen(e){n.push(e);const o=()=>{r=u(t),e({location:r,action:"POP"})};return t.addEventListener("popstate",o),()=>{t.removeEventListener("popstate",o),n=n.filter((t=>t!==e))}},navigate(e,{state:a,replace:c=!1}={}){if("number"==typeof e)t.history.go(e);else{a=s({},a,{key:Date.now()+""});try{o||c?t.history.replaceState(a,null,e):t.history.pushState(a,null,e)}catch(n){t.location[c?"replace":"assign"](e)}}r=u(t),o=!0;const l=new Promise((t=>i=t));return n.forEach((t=>t({location:r,action:"PUSH"}))),l}}},f=(t="/")=>{const e=t.indexOf("?"),n={pathname:e>-1?t.substr(0,e):t,search:e>-1?t.substr(e):""};let r=0;const o=[n],i=[null];return{get location(){return o[r]},addEventListener(t,e){},removeEventListener(t,e){},history:{get entries(){return o},get index(){return r},get state(){return i[r]},pushState(t,e,n){const[a,s=""]=n.split("?");r++,o.push({pathname:a,search:s.length?`?${s}`:s}),i.push(t)},replaceState(t,e,n){const[a,s=""]=n.split("?");o[r]={pathname:a,search:s},i[r]=t},go(t){const e=r+t;e<0||e>i.length-1||(r=e)}}}},p=!("undefined"==typeof window||!window.document||!window.document.createElement),h=l(p?window:f()),{navigate:d}=h;function g(t,e){return o.createServerContext?((t,e=null)=>(globalThis.__SERVER_CONTEXT||(globalThis.__SERVER_CONTEXT={}),globalThis.__SERVER_CONTEXT[t]||(globalThis.__SERVER_CONTEXT[t]=o.createServerContext(t,e)),globalThis.__SERVER_CONTEXT[t]))(t,e):o.createContext(e)}const m=g("Base",{baseuri:"/",basepath:"/"}),y=g("Location"),v=()=>o.useContext(m),b=()=>o.useContext(y);function w(t){this.uri=t}const _=t=>t instanceof w,S=t=>{throw new w(t)};function O(t){const{to:e,replace:n=!0,state:r,noThrow:i,baseuri:a}=t;o.useEffect((()=>{Promise.resolve().then((()=>{const o=x(e,a);d(T(o,t),{replace:n,state:r})}))}),[]);const s=x(e,a);return i||S(T(s,t)),null}const E=t=>{const e=b(),{baseuri:n}=v();return o.createElement(O,s({},e,{baseuri:n},t))};E.propTypes={from:i.string,to:i.string.isRequired};const k=(t,e)=>t.substr(0,e.length)===e,j=(t,e)=>{let n,r;const[o]=e.split("?"),i=L(o),s=""===i[0],c=I(t);for(let u=0,l=c.length;u dynamic segment "${r[1]}" is a reserved name. Please use a different name in path "${o.path}".`);const e=decodeURIComponent(n);f[r[1]]=e}else if(e!==n){t=!0;break}}if(!t){n={route:o,params:f,uri:"/"+i.slice(0,h).join("/")};break}}return n||r||null},P=(t,e)=>j([{path:t}],e),x=(t,e)=>{if(k(t,"/"))return t;const[n,r]=t.split("?"),[o]=e.split("?"),i=L(n),a=L(o);if(""===i[0])return M(o,r);if(!k(i[0],".")){const t=a.concat(i).join("/");return M(("/"===o?"":"/")+t,r)}const s=a.concat(i),c=[];for(let u=0,l=s.length;u{const[n,r=""]=t.split("?");let o="/"+L(n).map((t=>{const n=R.exec(t);return n?e[n[1]]:t})).join("/");const{location:{search:i=""}={}}=e,a=i.split("?")[1]||"";return o=M(o,r,a),o},C=(t,e)=>{const n=t=>A(t);return L(t).filter(n).sort().join("/")===L(e).filter(n).sort().join("/")},R=/^:(.+)/,A=t=>R.test(t),N=t=>t&&"*"===t[0],D=(t,e)=>({route:t,score:t.default?0:L(t.path).reduce(((t,e)=>(t+=4,(t=>""===t)(e)?t+=1:A(e)?t+=2:N(e)?t-=5:t+=3,t)),0),index:e}),I=t=>t.map(D).sort(((t,e)=>t.scoree.score?-1:t.index-e.index)),L=t=>t.replace(/(^\/+|\/+$)/g,"").split("/"),M=(t,...e)=>t+((e=e.filter((t=>t&&t.length>0)))&&e.length>0?`?${e.join("&")}`:""),F=["uri","path"],U=(t,e)=>{const n=Object.keys(t);return n.length===Object.keys(e).length&&n.every((n=>e.hasOwnProperty(n)&&t[n]===e[n]))},z=t=>t.replace(/(^\/+|\/+$)/g,""),B=t=>e=>{if(!e)return null;if(e.type===o.Fragment&&e.props.children)return o.Children.map(e.props.children,B(t));if(a(e.props.path||e.props.default||e.type===E,`: Children of must have a \`path\` or \`default\` prop, or be a \`\`. None found on element type \`${e.type}\``),a(!!(e.type!==E||e.props.from&&e.props.to),` requires both "from" and "to" props when inside a .`),a(!(e.type===E&&!C(e.props.from,e.props.to)),` has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.`),e.props.default)return{value:e,default:!0};const n=e.type===E?e.props.from:e.props.path,r="/"===n?t:`${z(t)}/${z(n)}`;return{value:e,default:e.props.default,path:e.props.children?`${z(r)}/*`:r}},H=["innerRef"],$=["to","state","replace","getProps"],q=["key"];let{forwardRef:V}=r||(r=n.t(o,2));void 0===V&&(V=t=>t);const W=()=>{},K=V(((t,e)=>{let{innerRef:n}=t,r=c(t,H);const{baseuri:i}=v(),{location:a}=b(),{to:u,state:l,replace:f,getProps:p=W}=r,h=c(r,$),g=x(u,i),m=encodeURI(g),y=a.pathname===m,w=k(a.pathname,m);return o.createElement("a",s({ref:e||n,"aria-current":y?"page":void 0},h,p({isCurrent:y,isPartiallyCurrent:w,href:g,location:a}),{href:g,onClick:t=>{if(h.onClick&&h.onClick(t),(t=>!t.defaultPrevented&&0===t.button&&!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey))(t)){t.preventDefault();let e=f;if("boolean"!=typeof f&&y){const t=c(s({},a.state),q);e=U(s({},l),t)}d(g,{state:l,replace:e})}}}))}));K.displayName="Link",K.propTypes={to:i.string.isRequired};class J extends o.Component{constructor(...t){super(...t),this.displayName="ReactUseErrorBoundary"}componentDidCatch(...t){this.setState({}),this.props.onError(...t)}render(){return this.props.children}}const G=o.createContext({componentDidCatch:{current:void 0},error:void 0,setError:()=>!1});function Y({children:t}){const[e,n]=o.useState(),r=o.useRef(),i=o.useMemo((()=>({componentDidCatch:r,error:e,setError:n})),[e]);return o.createElement(G.Provider,{value:i},o.createElement(J,{error:e,onError:(t,e)=>{n(t),null==r.current||r.current(t,e)}},t))}Y.displayName="ReactUseErrorBoundaryContext";const X=function(t){var e,n;function r(e){return o.createElement(Y,null,o.createElement(t,s({key:"WrappedComponent"},e)))}return r.displayName=`WithErrorBoundary(${null!=(e=null!=(n=t.displayName)?n:t.name)?e:"Component"})`,r}((({history:t=h,children:e})=>{const{location:n}=t,[r,i]=o.useState({location:n}),[a]=function(t){const e=o.useContext(G);e.componentDidCatch.current=void 0;const n=o.useCallback((()=>{e.setError(void 0)}),[]);return[e.error,n]}();if(o.useEffect((()=>{t._onTransitionComplete()}),[r.location]),o.useEffect((()=>{let e=!1;const n=t.listen((({location:t})=>{Promise.resolve().then((()=>{requestAnimationFrame((()=>{e||i({location:t})}))}))}));return()=>{e=!0,n()}}),[]),a){if(!_(a))throw a;d(a.uri,{replace:!0})}return o.createElement(y.Provider,{value:r},"function"==typeof e?e(r):e||null)})),Q=({children:t})=>{const e=b();return e?t(e):o.createElement(X,null,t)},Z=({url:t,children:e})=>{const n=t.indexOf("?");let r,i="";return n>-1?(r=t.substring(0,n),i=t.substring(n)):r=t,o.createElement(y.Provider,{value:{location:{pathname:r,search:i,hash:""}}},e)},tt=({path:t,children:e})=>{const{baseuri:n}=v(),{location:r}=b(),o=x(t,n),i=P(o,r.pathname);return e({location:r,match:i?s({},i.params,{uri:i.uri,path:t}):null})},et=["uri","location","component"],nt=["children","style","component","uri","location"],rt=t=>{let{uri:e,location:n,component:r}=t,i=c(t,et);return o.createElement(it,s({},i,{component:r,uri:e,location:n}))};let ot=0;const it=t=>{let{children:e,style:n,component:r="div",uri:i,location:a}=t,u=c(t,nt);const l=o.useRef(),f=o.useRef(!0),p=o.useRef(i),h=o.useRef(a.pathname),d=o.useRef(!1);o.useEffect((()=>(ot++,g(),()=>{ot--,0===ot&&(f.current=!0)})),[]),o.useEffect((()=>{let t=!1,e=!1;i!==p.current&&(p.current=i,t=!0),a.pathname!==h.current&&(h.current=a.pathname,e=!0),d.current=t||e&&a.pathname===i,d.current&&g()}),[i,a]);const g=o.useCallback((()=>{var t;f.current?f.current=!1:(t=l.current,d.current&&t&&t.focus())}),[]);return o.createElement(r,s({style:s({outline:"none"},n),tabIndex:"-1",ref:l},u),e)},at=["location","primary","children","basepath","baseuri","component"],st=t=>{const e=v(),n=b();return o.createElement(ct,s({},e,n,t))};function ct(t){const{location:e,primary:n=!0,children:r,basepath:i,component:a="div"}=t,u=c(t,at),l=o.Children.toArray(r).reduce(((t,e)=>{const n=B(i)(e);return t.concat(n)}),[]),{pathname:f}=e,p=j(l,f);if(p){const{params:t,uri:r,route:c,route:{value:l}}=p,f=c.default?i:c.path.replace(/\*$/,""),h=s({},t,{uri:r,location:e}),d=o.cloneElement(l,h,l.props.children?o.createElement(st,{location:e,primary:n},l.props.children):void 0),g=n?rt:a,y=n?s({uri:r,location:e,component:a},u):u;return o.createElement(m.Provider,{value:{baseuri:r,basepath:f}},o.createElement(g,y,d))}return null}const ut=()=>{const t=b();if(!t)throw new Error("useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router");return t.location},lt=()=>{throw new Error("useNavigate is removed. Use import { navigate } from 'gatsby' instead")},ft=()=>{const t=v();if(!t)throw new Error("useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router");const e=ut(),n=P(t.basepath,e.pathname);return n?n.params:null},pt=t=>{if(!t)throw new Error("useMatch(path: string) requires an argument of a string to match against");const e=v();if(!e)throw new Error("useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router");const n=ut(),r=x(t,e.baseuri),o=P(r,n.pathname);return o?s({},o.params,{uri:o.uri,path:t}):null}},7078:function(t,e,n){"use strict";n.d(e,{Fe:function(){return h},N_:function(){return S},Rr:function(){return c},Zf:function(){return v},oo:function(){return O}});var r=n(5556),o=n(6540),i=n(6462),a=n(6395);function s(){return s=Object.assign?Object.assign.bind():function(t){for(var e=1;e{if("string"==typeof t)return!(t=>u.test(t))(t)},f=()=>"",p=()=>"";function h(t,e=f()){var n;if(!l(t))return t;if(t.startsWith("./")||t.startsWith("../"))return t;const r=null!=(n=null!=e?e:p())?n:"/";return`${null!=r&&r.endsWith("/")?r.slice(0,-1):r}${t.startsWith("/")?t:`/${t}`}`}const d=t=>null==t?void 0:t.startsWith("/");function g(t,e){const{pathname:n,search:r,hash:o}=c(t);return`${(0,a.T)(n,e)}${r}${o}`}const m=(t,e)=>"number"==typeof t?t:l(t)?d(t)?function(t){const e=h(t),n="always";return g(e,n)}(t):function(t,e){if(d(t))return t;const n="always",r=(0,i.resolve)(t,e);return g(r,n)}(t,e):t,y=["to","getProps","onClick","onMouseEnter","activeClassName","activeStyle","innerRef","partiallyActive","state","replace","_location"];function v(t){return h(t,p())}const b={activeClassName:r.string,activeStyle:r.object,partiallyActive:r.bool};function w(t){return o.createElement(i.Location,null,(({location:e})=>o.createElement(_,s({},t,{_location:e}))))}class _ extends o.Component{constructor(t){super(t),this.defaultGetProps=({isPartiallyCurrent:t,isCurrent:e})=>(this.props.partiallyActive?t:e)?{className:[this.props.className,this.props.activeClassName].filter(Boolean).join(" "),style:s({},this.props.style,this.props.activeStyle)}:null;let e=!1;"undefined"!=typeof window&&window.IntersectionObserver&&(e=!0),this.state={IOSupported:e},this.abortPrefetch=null,this.handleRef=this.handleRef.bind(this)}_prefetch(){let t=window.location.pathname+window.location.search;this.props._location&&this.props._location.pathname&&(t=this.props._location.pathname+this.props._location.search);const e=c(m(this.props.to,t)),n=e.pathname+e.search;if(t!==n)return ___loader.enqueue(n)}componentWillUnmount(){if(!this.io)return;const{instance:t,el:e}=this.io;this.abortPrefetch&&this.abortPrefetch.abort(),t.unobserve(e),t.disconnect()}handleRef(t){this.props.innerRef&&Object.prototype.hasOwnProperty.call(this.props.innerRef,"current")?this.props.innerRef.current=t:this.props.innerRef&&this.props.innerRef(t),this.state.IOSupported&&t&&(this.io=((t,e)=>{const n=new window.IntersectionObserver((n=>{n.forEach((n=>{t===n.target&&e(n.isIntersecting||n.intersectionRatio>0)}))}));return n.observe(t),{instance:n,el:t}})(t,(t=>{t?this.abortPrefetch=this._prefetch():this.abortPrefetch&&this.abortPrefetch.abort()})))}render(){const t=this.props,{to:e,getProps:n=this.defaultGetProps,onClick:r,onMouseEnter:a,state:u,replace:f,_location:p}=t,h=function(t,e){if(null==t)return{};var n,r,o={},i=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,y),d=m(e,p.pathname);return l(d)?o.createElement(i.Link,s({to:d,state:u,getProps:n,innerRef:this.handleRef,onMouseEnter:t=>{a&&a(t);const e=c(d);___loader.hovering(e.pathname+e.search)},onClick:t=>{if(r&&r(t),!(0!==t.button||this.props.target||t.defaultPrevented||t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)){t.preventDefault();let e=f;const n=encodeURI(d)===p.pathname;"boolean"!=typeof f&&n&&(e=!0),window.___navigate(d,{state:u,replace:e})}return!0}},h)):o.createElement("a",s({href:d},h))}}_.propTypes=s({},b,{onClick:r.func,to:r.string.isRequired,replace:r.bool,state:r.object});const S=o.forwardRef(((t,e)=>o.createElement(w,s({innerRef:e},t)))),O=(t,e)=>{window.___navigate(m(t,window.location.pathname),e)}},5535:function(t,e,n){"use strict";n.r(e),n.d(e,{Script:function(){return d},ScriptStrategy:function(){return u},collectedScriptsByPage:function(){return s},scriptCache:function(){return p},scriptCallbackCache:function(){return h}});var r=n(6540),o=n(6462);function i(){return i=Object.assign?Object.assign.bind():function(t){for(var e=1;ea.get(t)||[],set(t,e){const n=a.get(t)||[];n.push(e),a.set(t,n)},delete(t){a.delete(t)}},c="undefined"!=typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(t){const e=Date.now();return setTimeout((function(){t({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-e))}})}),1)};var u,l;(l=u||(u={})).postHydrate="post-hydrate",l.idle="idle",l.offMainThread="off-main-thread";const f=new Set(["src","strategy","dangerouslySetInnerHTML","children","onLoad","onError"]),p=new Set,h=new Map;function d(t){return r.createElement(o.Location,null,(()=>r.createElement(g,t)))}function g(t){const{src:e,strategy:n=u.postHydrate}=t||{},{pathname:a}=(0,o.useLocation)();if((0,r.useEffect)((()=>{let e;switch(n){case u.postHydrate:e=m(t);break;case u.idle:c((()=>{e=m(t)}));break;case u.offMainThread:{const e=v(t);s.set(a,e)}}return()=>{const{script:t,loadCallback:n,errorCallback:r}=e||{};n&&(null==t||t.removeEventListener("load",n)),r&&(null==t||t.removeEventListener("error",r)),null==t||t.remove()}}),[]),n===u.offMainThread){const o=y(t),c=v(t);return"undefined"==typeof window&&s.set(a,c),r.createElement("script",o?i({type:"text/partytown","data-strategy":n,crossOrigin:"anonymous"},c,{dangerouslySetInnerHTML:{__html:y(t)}}):i({type:"text/partytown",src:b(e),"data-strategy":n,crossOrigin:"anonymous"},c))}return null}function m(t){const{id:e,src:n,strategy:r=u.postHydrate,onLoad:o,onError:a}=t||{},s=e||n,c=["load","error"],l={load:o,error:a};if(s){for(const t of c)if(null!=l&&l[t]){var f;const e=h.get(s)||{},{callbacks:n=[]}=(null==e?void 0:e[t])||{};var d,g;n.push(null==l?void 0:l[t]),null!=e&&null!=(f=e[t])&&f.event?null==l||null==(d=l[t])||d.call(l,null==e||null==(g=e[t])?void 0:g.event):h.set(s,i({},e,{[t]:{callbacks:n}}))}if(p.has(s))return null}const m=y(t),b=v(t),_=document.createElement("script");e&&(_.id=e),_.dataset.strategy=r;for(const[i,u]of Object.entries(b))_.setAttribute(i,u);m&&(_.textContent=m),n&&(_.src=n);const S={};if(s){for(const t of c){const e=e=>w(e,s,t);_.addEventListener(t,e),S[`${t}Callback`]=e}p.add(s)}return document.body.appendChild(_),{script:_,loadCallback:S.loadCallback,errorCallback:S.errorCallback}}function y(t){const{dangerouslySetInnerHTML:e,children:n=""}=t||{},{__html:r=""}=e||{};return r||n}function v(t){const e={};for(const[n,r]of Object.entries(t))f.has(n)||(e[n]=r);return e}function b(t){if(t)return`/__third-party-proxy?url=${encodeURIComponent(t)}`}function w(t,e,n){const r=h.get(e)||{};for(const i of(null==r||null==(o=r[n])?void 0:o.callbacks)||[]){var o;i(t)}h.set(e,{[n]:{event:t}})}},2389:function(t,e,n){"use strict";n.d(e,{xC:function(){return b},Bd:function(){return v}});var r=n(6540);n(4915);Object.create(null);const o={};function i(){for(var t=arguments.length,e=new Array(t),n=0;n()=>{if(t.isInitialized)e();else{const n=()=>{setTimeout((()=>{t.off("initialized",n)}),0),e()};t.on("initialized",n)}};function s(t,e,n){t.loadNamespaces(e,a(t,n))}function c(t,e,n,r){"string"==typeof n&&(n=[n]),n.forEach((e=>{t.options.ns.indexOf(e)<0&&t.options.ns.push(e)})),t.loadLanguages(e,a(t,r))}const u=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,l={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},f=t=>l[t];let p,h={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:t=>t.replace(u,f)};const d=(0,r.createContext)();class g{constructor(){this.usedNamespaces={}}addUsedNamespaces(t){t.forEach((t=>{this.usedNamespaces[t]||(this.usedNamespaces[t]=!0)}))}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}}const m=(t,e)=>{const n=(0,r.useRef)();return(0,r.useEffect)((()=>{n.current=e?n.current:t}),[t,e]),n.current};function y(t,e,n,r){return t.getFixedT(e,n,r)}function v(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{i18n:n}=e,{i18n:o,defaultNS:a}=(0,r.useContext)(d)||{},u=n||o||p;if(u&&!u.reportNamespaces&&(u.reportNamespaces=new g),!u){i("You will need to pass in an i18next instance by using initReactI18next");const t=(t,e)=>"string"==typeof e?e:e&&"object"==typeof e&&"string"==typeof e.defaultValue?e.defaultValue:Array.isArray(t)?t[t.length-1]:t,e=[t,{},!1];return e.t=t,e.i18n={},e.ready=!1,e}u.options.react&&void 0!==u.options.react.wait&&i("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");const l={...h,...u.options.react,...e},{useSuspense:f,keyPrefix:v}=l;let b=t||a||u.options&&u.options.defaultNS;b="string"==typeof b?[b]:b||["translation"],u.reportNamespaces.addUsedNamespaces&&u.reportNamespaces.addUsedNamespaces(b);const w=(u.isInitialized||u.initializedStoreOnce)&&b.every((t=>function(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e.languages&&e.languages.length?void 0!==e.options.ignoreJSONStructure?e.hasLoadedNamespace(t,{lng:n.lng,precheck:(e,r)=>{if(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&e.services.backendConnector.backend&&e.isLanguageChangingTo&&!r(e.isLanguageChangingTo,t))return!1}}):function(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=e.languages[0],o=!!e.options&&e.options.fallbackLng,i=e.languages[e.languages.length-1];if("cimode"===r.toLowerCase())return!0;const a=(t,n)=>{const r=e.services.backendConnector.state[`${t}|${n}`];return-1===r||2===r};return!(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&e.services.backendConnector.backend&&e.isLanguageChangingTo&&!a(e.isLanguageChangingTo,t)||!e.hasResourceBundle(r,t)&&e.services.backendConnector.backend&&(!e.options.resources||e.options.partialBundledLanguages)&&(!a(r,t)||o&&!a(i,t)))}(t,e,n):(i("i18n.languages were undefined or empty",e.languages),!0)}(t,u,l))),_=function(t,e,n,o){return(0,r.useCallback)(y(t,e,n,o),[t,e,n,o])}(u,e.lng||null,"fallback"===l.nsMode?b:b[0],v),S=()=>_,O=()=>y(u,e.lng||null,"fallback"===l.nsMode?b:b[0],v),[E,k]=(0,r.useState)(S);let j=b.join();e.lng&&(j=`${e.lng}${j}`);const P=m(j),x=(0,r.useRef)(!0);(0,r.useEffect)((()=>{const{bindI18n:t,bindI18nStore:n}=l;function r(){x.current&&k(O)}return x.current=!0,w||f||(e.lng?c(u,e.lng,b,(()=>{x.current&&k(O)})):s(u,b,(()=>{x.current&&k(O)}))),w&&P&&P!==j&&x.current&&k(O),t&&u&&u.on(t,r),n&&u&&u.store.on(n,r),()=>{x.current=!1,t&&u&&t.split(" ").forEach((t=>u.off(t,r))),n&&u&&n.split(" ").forEach((t=>u.store.off(t,r)))}}),[u,j]);const T=(0,r.useRef)(!0);(0,r.useEffect)((()=>{x.current&&!T.current&&k(S),T.current=!1}),[u,v]);const C=[E,u,w];if(C.t=E,C.i18n=u,C.ready=w,w)return C;if(!w&&!f)return C;throw new Promise((t=>{e.lng?c(u,e.lng,b,(()=>t())):s(u,b,(()=>t()))}))}function b(t){let{i18n:e,defaultNS:n,children:o}=t;const i=(0,r.useMemo)((()=>({i18n:e,defaultNS:n})),[e,n]);return(0,r.createElement)(d.Provider,{value:i},o)}},1468:function(t,e,n){"use strict";n.d(e,{Kq:function(){return _},d4:function(){return m},wA:function(){return j}});var r=n(6540),o=n(8418),i=r,a=Symbol.for("react-redux-context"),s="undefined"!=typeof globalThis?globalThis:{};function c(){if(!i.createContext)return{};const t=s[a]??(s[a]=new Map);let e=t.get(i.createContext);return e||(e=i.createContext(null),t.set(i.createContext,e)),e}var u=c(),l=()=>{throw new Error("uSES not initialized!")};function f(t=u){return function(){return i.useContext(t)}}var p=f(),h=l,d=(t,e)=>t===e;function g(t=u){const e=t===u?p:f(t),n=(t,n={})=>{const{equalityFn:r=d,devModeChecks:o={}}="function"==typeof n?{equalityFn:n}:n;const{store:a,subscription:s,getServerState:c,stabilityCheck:u,identityFunctionCheck:l}=e(),f=(i.useRef(!0),i.useCallback({[t.name](e){return t(e)}}[t.name],[t,u,o.stabilityCheck])),p=h(s.addNestedSub,a.getState,c||a.getState,f,r);return i.useDebugValue(p),p};return Object.assign(n,{withTypes:()=>n}),n}var m=g();Symbol.for("react.element"),Symbol.for("react.portal"),Symbol.for("react.fragment"),Symbol.for("react.strict_mode"),Symbol.for("react.profiler"),Symbol.for("react.provider"),Symbol.for("react.context"),Symbol.for("react.server_context"),Symbol.for("react.forward_ref"),Symbol.for("react.suspense"),Symbol.for("react.suspense_list"),Symbol.for("react.memo"),Symbol.for("react.lazy"),Symbol.for("react.offscreen"),Symbol.for("react.client.reference");function y(t){t()}var v={notify(){},get:()=>[]};function b(t,e){let n,r=v,o=0,i=!1;function a(){u.onStateChange&&u.onStateChange()}function s(){o++,n||(n=e?e.addNestedSub(a):t.subscribe(a),r=function(){let t=null,e=null;return{clear(){t=null,e=null},notify(){y((()=>{let e=t;for(;e;)e.callback(),e=e.next}))},get(){const e=[];let n=t;for(;n;)e.push(n),n=n.next;return e},subscribe(n){let r=!0;const o=e={callback:n,next:null,prev:e};return o.prev?o.prev.next=o:t=o,function(){r&&null!==t&&(r=!1,o.next?o.next.prev=o.prev:e=o.prev,o.prev?o.prev.next=o.next:t=o.next)}}}}())}function c(){o--,n&&0===o&&(n(),n=void 0,r.clear(),r=v)}const u={addNestedSub:function(t){s();const e=r.subscribe(t);let n=!1;return()=>{n||(n=!0,e(),c())}},notifyNestedSubs:function(){r.notify()},handleChangeWrapper:a,isSubscribed:function(){return i},trySubscribe:function(){i||(i=!0,s())},tryUnsubscribe:function(){i&&(i=!1,c())},getListeners:()=>r};return u}var w=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement)?i.useLayoutEffect:i.useEffect;Object.defineProperty,Object.getOwnPropertyNames,Object.getOwnPropertySymbols,Object.getOwnPropertyDescriptor,Object.getPrototypeOf,Object.prototype;var _=function({store:t,context:e,children:n,serverState:r,stabilityCheck:o="once",identityFunctionCheck:a="once"}){const s=i.useMemo((()=>{const e=b(t);return{store:t,subscription:e,getServerState:r?()=>r:void 0,stabilityCheck:o,identityFunctionCheck:a}}),[t,r,o,a]),c=i.useMemo((()=>t.getState()),[t]);w((()=>{const{subscription:e}=s;return e.onStateChange=e.notifyNestedSubs,e.trySubscribe(),c!==t.getState()&&e.notifyNestedSubs(),()=>{e.tryUnsubscribe(),e.onStateChange=void 0}}),[s,c]);const l=e||u;return i.createElement(l.Provider,{value:s},n)};function S(t=u){const e=t===u?p:f(t),n=()=>{const{store:t}=e();return t};return Object.assign(n,{withTypes:()=>n}),n}var O=S();function E(t=u){const e=t===u?O:S(t),n=()=>e().dispatch;return Object.assign(n,{withTypes:()=>n}),n}var k,j=E();k=o.useSyncExternalStoreWithSelector,h=k,(t=>{t})(r.useSyncExternalStore)},669:function(t){"use strict";t.exports=JSON.parse('{"Page not found":"Page not found","To Home Page":"To Home Page"}')},4048:function(t){"use strict";t.exports=JSON.parse('{"About":"About","aboutDescription":"Senior Full Stack Web / Web3 / Blockchain Developer. Team Leader. Project Manager.","Aleksandr Ivannikov":"Aleksandr Ivannikov","Full Stack Developer":"Senior Full Stack Web / Web3 / Blockchain Developer. Team Leader. Project Manager.","Get in Touch":"Get in Touch"}')},395:function(t){"use strict";t.exports=JSON.parse('{"Blog":"Blog","blogDescription":"In my blog, I talk about blockchain, cryptocurrencies, programming and my life.","Aleksandr Ivannikov":"Aleksandr Ivannikov","Get in Touch":"Get in Touch","To Home Page":"Home","To Blog Page":"To Home Page","More":"More"}')},8416:function(t){"use strict";t.exports=JSON.parse('{"Curriculum Vitae":"Curriculum Vitae","cvDescription":"Senior Full Stack Web / Web3 / Blockchain Developer. Team Leader. Project Manager.","keywordsList":"curriculum vitae,cv,project manager,team leader,full stack developer,full-stack developer,blockchain developer,web developer,web3 developer,dapp developer,nft developer,senior developer, senior blockchain developer, senior web developer, senior web3 developer","To Home Page":"To Home Page","Get in Touch":"Get in Touch","Print":"Print","Print CV":"Print CV","Aleksandr Ivannikov":"Aleksandr Ivannikov","First name":"Aleksandr","Middle name":"Nikolaevich","Last name":"Ivannikov","Details":"Details","Address":"Address","cvMyAddress":"Dubai, UAE","Phone number":"Phone number","Nationality":"Nationality","NationalityRussian":"Russian","Date of Birth":"Date of Birth","cvMyDoB":"February 4, 1990","Skills":"Skills","Hard skills":"Hard skills","Soft skills":"Soft skills","Languages":"Languages","Native":"(Native)","Reading documentation, speaking":"(Speaking, reading documentation)","Russian":"Russian","English":"English","Profile":"Profile","Projects History":"Projects History","Project":"Project","Link":"Link","projectWmcV2Title":"Project \\"World Millionaire Challenge V2\\"","projectWmcV2Desc":"-","projectWmcV2Time":"March 2024 - April 2024","projectFaBotTitle":"Project \\"Fibonacci Assistant Telegram Bot\\"","projectFaBotDesc":"Tech support Telegram Bot for the \\"Fibonacci Protocol\\" channel. Checking referral subscriptions, inviting to a closed group, banning users.","projectFaBotTime":"March 2024","projectSmarts2024Title":"Project \\"Smart contracts for meme tokens\\"","projectSmarts2024Desc":"-","projectSmarts2024Time":"January 2024 - February 2024","projectUlsTitle":"Project \\"UNITS LIMITED SUPPLY (ULS) TOKEN\\"","projectUlsDesc":"Cross-chain token on the Ethereum and Arbitrum blockchains with staking and annual halving. For halving, the Golden Ratio formula is applied. The project was created from a turnkey idea in 2 months. Created a unique design, smart contracts and website using React.js. WalletConnect was used to connect to the wallet.","projectUlsTime":"November 2023 - December 2023","projectWmcV1Title":"Project \\"World Millionaire Challenge\\"","projectWmcV1Desc":"Big daily lottery project. The project was created from a turnkey idea in 4 months. Created a unique design, smart contracts and website using React.js. WalletConnect was used to connect to the wallet. Implemented a personal user account, purchasing subscriptions, and a massive backend for working with the database and blockchain.","projectWmcV1Time":"July 2023 - October 2023","projectNftMmV1Title":"Project \\"Market Making for NFT\\"","projectNftMmV1Desc":"-","projectNftMmV1Time":"March 2023 - Jun 2023","projectUndeadsNftTitle":"Project \\"Undeads NFT\\"","projectUndeadsNftDesc":"-","projectUndeadsNftTime":"December 2022 - February 2023","projectGrabClubTokenTitle":"Project \\"GrabClub (GC) Token\\"","projectGrabClubTokenDesc":"-","projectGrabClubTokenTime":"August 2022","projectGrabCoinClubNftsTitle":"Project \\"GrabCoinClub NFTs\\"","projectGrabCoinClubNftsDesc":"Several NFT collections for GrabCoinClub. I have completed work on developing smart contracts, creating and loading metadata, connecting the front end to the wallet and blockchain, the back end for the whitelist and protection against attacks on mint.","projectGrabCoinClubNftsTime":"2022","projectPoolexTitle":"Project \\"Poolex.ai (Fork of Uniswap V2)\\"","projectPoolexDesc":"A Uniswap V2 fork was created for the customer - Automated market makers (AMM). I created a fork of smart contracts and a web interface. The Polygon (Matic) network has been added. Placement on the blockchain and on a domain name. Posting code on GitHub. Project completion time is 2 weeks.","projectPoolexTime":"July 2022","projectAntiquesNftTitle":"Project \\"Antiques NFT Collection\\"","projectAntiquesNftDesc":"-","projectAntiquesNftTime":"Jun 2022 - November 2022","projectP202BlockchainTitle":"Project \\"Project 202 (P202) Blockchain\\"","projectP202BlockchainDesc":"-","projectP202BlockchainTime":"May 2022 - October 2022","projectP202WalletTitle":"Project \\"Project 202 (P202) Wallet\\"","projectP202WalletDesc":"-","projectP202WalletTime":"February 2022 - April 2022","projectP202TokenTitle":"Project \\"Project 202 (P202) Token\\"","projectP202TokenDesc":"-","projectP202TokenTime":"January 2022","projectRobotokenTitle":"Project \\"Robotoken NFT Collection\\"","projectRobotokenDesc":"-","projectRobotokenTime":"December 2021 - March 2022","projectRoborovskiTitle":"Project \\"Roborovski NFT Collection by SYA Concept\\"","projectRoborovskiDesc":"Cool NFT collection from a famous studio with great art. I have completed work on developing smart contracts, creating and loading metadata, on-chain metadata, a react.js website with mint and a personal account, a backend for the raffle whitelist and protection against attacks on mint.","projectRoborovskiTime":"November 2021 - February 2022","projectCosmoSwapTitle":"Project \\"CosmoSwap\\"","projectCosmoSwapDesc":"-","projectCosmoSwapTime":"2021","projectCosmoMasksTitle":"Project \\"CosmoMasks NFT Collection\\"","projectCosmoMasksDesc":"-","projectCosmoMasksTime":"2021","projectValueswapTitle":"Project \\"ValueSwap (Fork of Uniswap V2)\\"","projectValueswapDesc":"-","projectValueswapTime":"December 2020","--EOS fork":"September 2020 - November 2020","--leopays":"2019-2020","--p2p":"2019","projectBlockchainComRecovery2018Title":"Project \\"Recovering Blockchain.com wallet password\\"","projectBlockchainComRecovery2018Desc":"-","projectBlockchainComRecovery2018Time":"December 2018","projectBitcoinFork2018Title":"Project \\"Bitcoin fork introducing encrypted messages\\"","projectBitcoinFork2018Desc":"-","projectBitcoinFork2018Time":"September 2018 - November 2018","--MosMiner Channel":"November 2017 - ? 2018","projectFsoExitPoll2014Title":"Project \\"Software for supporting the exit poll of the elections of the Governor of the Krasnoyarsk Territory in 2014\\"","projectFsoExitPoll2014Desc":"-","projectFsoExitPoll2014Time":"2014","Employment History":"Employment History","employmentHistoryPeDubaiEmployer":"\\"Aleksandr Ivannikov - DDA\\".","employmentHistoryPeDubaiPosition":"Freelancer in the","employmentHistoryPeDubaiResponsibilities":"Custom software development for Web, Web3, Blockchain.","employmentHistoryPeDubaiCity":"Dubai, UAE","employmentHistoryPeDubaiTime":"June 2022 - Present","employmentHistoryPeDubaiUrl":"https://dcca.secure.force.com/ValidateLicense?i=QotbeOwn8vXrVBpDVxBfWKFZ9hcLdJ%201LvwNTZDxPV0=","employmentHistoryPeEmployer":"\\"Ivannikov Aleksandr Nikolaevich\\", Personal Entrepreneur.","employmentHistoryPePosition":"Freelancer in the","employmentHistoryPeResponsibilities":"Custom software development for Web, Web3, Blockchain.","employmentHistoryPeCity":"Moscow, Russia","employmentHistoryPeTime":"November 2019 - June 2022","employmentHistoryPeUrl":"https://companies.rbc.ru/persons/ogrnip/319246800144721-ivannikov-aleksandr-nikolaevich/","employmentHistoryEmpireOfMachineryEmployer":"\\"Empire of Machinery\\", LLC.","employmentHistoryEmpireOfMachineryPosition":"Founder and CEO in the","employmentHistoryEmpireOfMachineryResponsibilities":"I received the status of a regional distributor of a Chinese manufacturer of special equipment: Xiamen Xgma Machinery Co., Ltd.","employmentHistoryEmpireOfMachineryCity":"Krasnoyarsk, Russia","employmentHistoryEmpireOfMachineryTime":"April 2016 - September 2019","employmentHistoryEmpireOfMachineryUrl":"https://companies.rbc.ru/id/1162468070709-ooo-imperiya-mashin/","employmentHistoryFsoEmployer":"\\"Center for Special Communications and Information of the Federal Security Guard Service of the Russian Federation in the Krasnoyarsk Territory\\".","employmentHistoryFsoPosition":"Employee of the \\"Regional Information and Analytical Center\\" in the","employmentHistoryFsoResponsibilities":"Collection and analysis of information, conducting opinion polls, organizing secure communications.","employmentHistoryFsoCity":"Krasnoyarsk, Russia","employmentHistoryFsoTime":"Jun 2013 - November 2016","employmentHistoryFsoUrl":"https://companies.rbc.ru/id/1032402958015-tsentr-spetsialnoj-svyazi-i-informatsii-federalnoj-sluzhbyi-ohranyi-rossijskoj-federatsii-v-krasnoyarskom-krae/","Education":"Education","educationAfsoTitle":"\\"Russian Federation Security Guard Service Federal Academy\\".","educationAfsoDegree":"Engineer\'s degree, \\"Radio communications, radio broadcasting and television\\" in the","educationAfsoCity":"Oryol, Russia","educationAfsoTime":"August 2008 - Jun 2013","educationAfsoUrl":"https://academ.msk.rsnet.ru/"}')},7184:function(t){"use strict";t.exports=JSON.parse('{"IVANNIKOV.PRO":"IVANNIKOV.PRO","Aleksandr Ivannikov":"Aleksandr Ivannikov","Terms":"Terms","Privacy":"Privacy","Products":"Products","Services":"Services","Portfolio":"Portfolio","About":"About","Curriculum Vitae":"Curriculum Vitae","Projects":"Projects","Blog":"Blog","Notcoin Database":"$NOT @notcoin Database","Hotcoin Database":"$HOT @herewalletbot Database","Consultation":"Web3 crypto blockchain consultation","Technical specifications":"Development of technical specifications","Turnkey development":"Turnkey project development","Project support/maintenance":"Project support / maintenance","Project forks":"Project forks (DEXs, Uniswap, ...)","Smart Contract":"Development of Smart Contract","Smart Contract Security Audit":"Smart Contract Security Audit","Telegram Development":"Telegram Development","Telegram Bots":"Development of Telegram Bots","Telegram Mini Apps":"Development of Telegram Mini Apps","Telegram Wallet":"Development of Telegram Crypto Wallet","Telegram P2P Exchange Bot":"Development of Telegram P2P Exchange bot"}')},9454:function(t){"use strict";t.exports=JSON.parse('{"Home":"Home","Products":"Products","Services":"Services","Portfolio":"Portfolio","About":"About","Projects":"Projects","Blog":"Blog"}')},3173:function(t){"use strict";t.exports=JSON.parse('{"Get in Touch":"Get in Touch","Feel free to contact me":"Feel free to contact me","emailSubject":"Question%20from%20ivannikov.pro%20website"}')},7797:function(t){"use strict";t.exports=JSON.parse('{"Portfolio":"Portfolio","portfolioDescription":"Custom development of Blockchain / Web3 / Crypto projects.","Aleksandr Ivannikov":"Aleksandr Ivannikov","Get in Touch":"Get in Touch","Read more":"Read more","More":"More"}')},5689:function(t){"use strict";t.exports=JSON.parse('{"Privacy":"Privacy Policy","To Home Page":"To Home Page"}')},6210:function(t){"use strict";t.exports=JSON.parse('{"Products":"Products","IVANNIKOV.PRO":"IVANNIKOV.PRO","Aleksandr Ivannikov":"Aleksandr Ivannikov","Get in Touch":"Get in Touch","Hotcoin Database":"Hotcoin Database","productDescription":"$HOT @herewalletbot Database.","keywordsList":"hotcoin database,herewalletbot database,hotcoin,hot coin,hot token,$hot,hot near blockchain,hot near,near wallet bot,near wallet,near blockchain"}')},8680:function(t){"use strict";t.exports=JSON.parse('{"Products":"Products","IVANNIKOV.PRO":"IVANNIKOV.PRO","Aleksandr Ivannikov":"Aleksandr Ivannikov","Get in Touch":"Get in Touch","Notcoin Database":"Notcoin Database","productDescription":"$NOT @notcoin @notcoin_bot Database.","keywordsList":"notcoin database,notcoin database,notcoin_bot database,notcoin,notcoin_bot,not coin,not token,$not,not telegram blockchain,not telegram,telegram wallet bot,telegram wallet,telegram blockchain"}')},1979:function(t){"use strict";t.exports=JSON.parse('{"Products":"Products","productsDescription":"Products Description","Aleksandr Ivannikov":"Aleksandr Ivannikov","Get in Touch":"Get in Touch","More":"More"}')},1173:function(t){"use strict";t.exports=JSON.parse('{"Projects":"Projects","projectsDescription":"","Aleksandr Ivannikov":"Aleksandr Ivannikov","Get in Touch":"Get in Touch","More":"More"}')},3183:function(t){"use strict";t.exports=JSON.parse('{"Services":"Services","servicesDescription":"Services Description","Aleksandr Ivannikov":"Aleksandr Ivannikov","Get in Touch":"Get in Touch","More":"More"}')},9218:function(t){"use strict";t.exports=JSON.parse('{"Terms":"Terms","To Home Page":"To Home Page"}')},2206:function(t){"use strict";t.exports=JSON.parse('{"IVANNIKOV.PRO":"IVANNIKOV.PRO","ProjectName":"IVANNIKOV.PRO","ProjectSlogan":"Custom development of Blockchain / Web3 / Crypto projects","Aleksandr Ivannikov":"Aleksandr Ivannikov","Introduction":"From handle a specific task to development a turnkey project.","Get in Touch":"Get in Touch","helloWorld":"Hello World","indexNote":"This is the Index page.","secondPageLink":"Link to second page","thirdPageLink":"Link to third page","indexPageLink":"Link to index page","secondPageGermanLink":"Ссылка на вторую страницу (Русский)","indexPageEnglishLink":"Link to Index page (English)","overviewLang":"Overview of languages","thirdPage":"Third page","thirdNote":"This is the third page","home":"Home"}')},6915:function(t){"use strict";t.exports=JSON.parse('{"Page not found":"Страница не найдена","To Home Page":"На главную"}')},7598:function(t){"use strict";t.exports=JSON.parse('{"About":"Обо мне","aboutDescription":"Сеньёр веб / веб3 / блокчейн разработчик полного стека. Тимлид. Менеджер проектов.","Aleksandr Ivannikov":"Александр Иванников","Full Stack Developer":"Сеньёр веб / веб3 / блокчейн разработчик полного стека. Тимлид. Менеджер проектов.","Get in Touch":"Связаться"}')},6537:function(t){"use strict";t.exports=JSON.parse('{"Blog":"Блог","blogDescription":"В блоге я рассказываю о блокчейне, криптовалютах, программировании и своей жизни.","Aleksandr Ivannikov":"Александр Иванников","Get in Touch":"Связаться","To Home Page":"На главную","To Blog Page":"В блог","More":"Больше"}')},9654:function(t){"use strict";t.exports=JSON.parse('{"Curriculum Vitae":"Резюме","cvDescription":"Сеньёр веб / веб3 / блокчейн разработчик полного стека. Тимлид. Менеджер проектов.","keywordsList":"резюме,менеджер проектов,тимлид,разработчик полного стека,веб разработчик,веб3 разработчик,блокчейн разработчик,дапп разработчик,нфт разработчик,старший разработчик,сеньер разработчик, сеньер блокчейн разработчик, сеньер веб разработчик, сеньер веб3 разработчик","To Home Page":"На главную","Get in Touch":"Связаться","Print":"Печать","Print CV":"Печать Резюме","Aleksandr Ivannikov":"Александр Иванников","First name":"Александр","Middle name":"Николаевич","Last name":"Иванников","Details":"Контакты","Address":"Адрес","cvMyAddress":"Дубай, ОАЭ","Phone number":"Телефон","Nationality":"Национальность","NationalityRussian":"Россиянин","Date of Birth":"Дата рождения","cvMyDoB":"4 февраля 1990г.","Skills":"Навыки и умения","Hard skills":"Хард скилы","Soft skills":"Софт скилы","Global vision":"Глобальнрое видение","Self-learning":"Самообучаемость","Stress resistance":"Стрессоустойчивость","Problem solving":"Решение проблем","Languages":"Языки","Native":"(родной)","Reading documentation, speaking":"(разговорный, чтение документации)","Russian":"Русский","English":"Английский","Profile":"Обо мне","Projects History":"Выполеннные проекты","Project":"Проект","Link":"Ссылка","projectWmcV2Title":"Проект «World Millionaire Challenge V2»","projectWmcV2Desc":"-","projectWmcV2Time":"Март 2024 - Апрель 2024","projectFaBotTitle":"Проект «Fibonacci Assistant Telegram Bot»","projectFaBotDesc":"Телеграм бот техподдержки канала «Протокол Фибоначчи». Проверка реферальных подписок, приглашение в закрытую группу, бан пользователей.","projectFaBotTime":"Март 2024","projectSmarts2024Title":"Проект «Smart contracts for meme tokens»","projectSmarts2024Desc":"-","projectSmarts2024Time":"Январь 2024 - Февраль 2024","projectUlsTitle":"Проект «UNITS LIMITED SUPPLY (ULS) TOKEN»","projectUlsDesc":"Кроссчейн токен на блокчейнах Ethereum и Arbitrum со стейкингом и ежегодным халвингом. Для халвинга применена формула Золотого сечения. Проект был создан с идеи «под ключ» за 2 месяца. Создан уникальный дизайн, смарт-контракты и веб-сайт на React.js. Для подключения к кошельку использовался WalletConnect.","projectUlsTime":"Ноябрь 2023 - Декабрь 2023","projectWmcV1Title":"Проект «World Millionaire Challenge»","projectWmcV1Desc":"Большой проект ежедневной лотереи. Проект был создан с идеи «под ключ» за 4 месяца. Создан уникальный дизайн, смарт-контракты и веб-сайт на React.js. Для подключения к кошельку использовался WalletConnect. Реализован личный кабинет пользователей, покупка подписок, массивный бэкенд для работы с базой данных и блокчейном.","projectWmcV1Time":"Июль 2023 - Октябрь 2023","projectNftMmV1Title":"Проект «Market Making for NFT»","projectNftMmV1Desc":"-","projectNftMmV1Time":"Март 2023 - Июнь 2023","projectUndeadsNftTitle":"Проект «Undeads NFT»","projectUndeadsNftDesc":"-","projectUndeadsNftTime":"Декабрь 2022 - Февраль 2023","projectGrabClubTokenTitle":"Проект «GrabClub (GC) Token»","projectGrabClubTokenDesc":"-","projectGrabClubTokenTime":"Август 2022","projectGrabCoinClubNftsTitle":"Проект «GrabCoinClub NFTs»","projectGrabCoinClubNftsDesc":"Несколько NFT коллекций для GrabCoinClub. Мной были выполнены работы по разработке смарт-контрактов, созданию и загрузке метаданных, подключение фронтенда к кошельку и блокчейну, бэкенд для вайтлиста и защиты от атаки на минт.","projectGrabCoinClubNftsTime":"2022","projectPoolexTitle":"Проект «Poolex.ai (Fork of Uniswap V2)»","projectPoolexDesc":"Для заказчика был создан форк Uniswap V2 - автоматический маркет мейкер (AMM). Мною был создан форк смарт контрактов и веб интерфейса. Была добавлена сеть Polygon (Matic). Размещение в блокчейне и на доменном имени. Размещение кода на GitHub. Время выполнения проекта 2 недели.","projectPoolexTime":"Июль 2022","projectAntiquesNftTitle":"Проект «Antiques NFT Collection»","projectAntiquesNftDesc":"-","projectAntiquesNftTime":"Июнь 2022 - Ноябрь 2022","projectP202BlockchainTitle":"Проект «Project 202 (P202) Blockchain»","projectP202BlockchainDesc":"-","projectP202BlockchainTime":"Май 2022 - Октябрь 2022","projectP202WalletTitle":"Проект «Project 202 (P202) Wallet»","projectP202WalletDesc":"-","projectP202WalletTime":"Февраль 2022 - Апрель 2022","projectP202TokenTitle":"Проект «Project 202 (P202) Token»","projectP202TokenDesc":"-","projectP202TokenTime":"Январь 2022","projectRobotokenTitle":"Проект «Robotoken NFT Collection»","projectRobotokenDesc":"-","projectRobotokenTime":"Декабрь 2021 - Март 2022","projectRoborovskiTitle":"Проект «Roborovski NFT Collection by SYA Concept»","projectRoborovskiDesc":"Крутая NFT коллекция от известной студии с великолепным артом. Мной были выполнены работы по разработке смарт-контрактов, созданию и загрузке метаданных, он-чейн метаднные, сайт на react.js с минтом и личным кабинетом, бэкенд для рафла вайтлиста и защиты от атаки на минт.","projectRoborovskiTime":"Ноябрь 2021 - Февраль 2022","projectCosmoSwapTitle":"Проект «CosmoSwap»","projectCosmoSwapDesc":"-","projectCosmoSwapTime":"2021","projectCosmoMasksTitle":"Проект «CosmoMasks NFT Collection»","projectCosmoMasksDesc":"-","projectCosmoMasksTime":"2021","projectValueswapTitle":"Проект «ValueSwap (Fork of Uniswap V2)»","projectValueswapDesc":"-","projectValueswapTime":"Декабрь 2020","--EOS fork":"Сентябрь 2020 - Ноябрь 2020","--leopays":"2019-2020","--p2p":"2019","projectBlockchainComRecovery2018Title":"Проект «Восстановление пароля кошелька Blockchain.com»","projectBlockchainComRecovery2018Desc":"-","projectBlockchainComRecovery2018Time":"Декабрь 2018","projectBitcoinFork2018Title":"Проект «Форк Биткоина с внедрением зашифрованных сообщений»","projectBitcoinFork2018Desc":"-","projectBitcoinFork2018Time":"Сентябрь 2018 - Ноябрь 2018","--MosMiner Channel":"Ноябрь 2017 - ? 2018","projectFsoExitPoll2014Title":"Проект «Программное обеспечение для поддержки экзит-пола на выборах Губернатора Красноярского края 2014 года»","projectFsoExitPoll2014Desc":"-","projectFsoExitPoll2014Time":"2014","Employment History":"Опыт работы","employmentHistoryPeDubaiEmployer":"«Aleksandr Ivannikov - DDA».","employmentHistoryPeDubaiPosition":"Фрилансер в","employmentHistoryPeDubaiResponsibilities":"Заказная разработка программного обеспечения для веб, веб3, блокчейна.","employmentHistoryPeDubaiCity":"Дубай, ОАЭ","employmentHistoryPeDubaiTime":"Июнь 2022 - по настоящее время","employmentHistoryPeDubaiUrl":"https://dcca.secure.force.com/ValidateLicense?i=QotbeOwn8vXrVBpDVxBfWKFZ9hcLdJ%201LvwNTZDxPV0=","employmentHistoryPeEmployer":"ИП «Иванников Александр Николаевич».","employmentHistoryPePosition":"Фрилансер в","employmentHistoryPeResponsibilities":"Заказная разработка программного обеспечения для веб, веб3, блокчейна.","employmentHistoryPeCity":"Москва, Россия","employmentHistoryPeTime":"Ноябрь 2019 - Июнь 2022","employmentHistoryPeUrl":"https://companies.rbc.ru/persons/ogrnip/319246800144721-ivannikov-aleksandr-nikolaevich/","employmentHistoryEmpireOfMachineryEmployer":"ООО «Империя машин».","employmentHistoryEmpireOfMachineryPosition":"Основатель и Генеральный директор в","employmentHistoryEmpireOfMachineryResponsibilities":"Мной получен статус регионального дистрибьютора китайского производителя спецтехники: Xiamen Xgma Machinery Co., Ltd.","employmentHistoryEmpireOfMachineryCity":"Красноярск, Россия","employmentHistoryEmpireOfMachineryTime":"Апрель 2016 - Сентябрь 2019","employmentHistoryEmpireOfMachineryUrl":"https://companies.rbc.ru/id/1162468070709-ooo-imperiya-mashin/","employmentHistoryFsoEmployer":"«Центр специальной связи и информации Федеральной службы охраны Российской Федерации в Красноярском крае».","employmentHistoryFsoPosition":"Сотрудник «Региональный информационно-аналитический центр» в","employmentHistoryFsoResponsibilities":"Сбор и анализ информации, проведение социологических опросов, организация защищенной связи.","employmentHistoryFsoCity":"Красноярск, Россия","employmentHistoryFsoTime":"Июнь 2013 - Ноябрь 2016","employmentHistoryFsoUrl":"https://companies.rbc.ru/id/1032402958015-tsentr-spetsialnoj-svyazi-i-informatsii-federalnoj-sluzhbyi-ohranyi-rossijskoj-federatsii-v-krasnoyarskom-krae/","Education":"Образование","educationAfsoTitle":"«Академия Федеральной службы охраны Российской Федерации».","educationAfsoDegree":"Инженер, cпециальность «Радиосвязь, радиовещание и телевидение» в","educationAfsoCity":"Орёл, Россия","educationAfsoTime":"Август 2008 - Июнь 2013","educationAfsoUrl":"https://academ.msk.rsnet.ru/"}')},9146:function(t){"use strict";t.exports=JSON.parse('{"IVANNIKOV.PRO":"ИВАННИКОВ.ПРО","Aleksandr Ivannikov":"Александр Иванников","Terms":"Условия","Privacy":"Конфиденциальность","Products":"Продукты","Services":"Услуги","Portfolio":"Портфолио","About":"Обо мне","Curriculum Vitae":"Резюме","Projects":"Проекты","Blog":"Блог","Notcoin Database":"$NOT @notcoin база данных","Hotcoin Database":"$HOT @herewalletbot база данных","Consultation":"Консультатция по блокчейну крипте веб3","Technical specifications":"Разработка технического задания","Turnkey development":"Разработка проекта «под ключ»","Project support/maintenance":"Поддержка / обслуживание проекта","Project forks":"Форки проектов (DEXs, Uniswap, ...)","Smart Contract":"Разработка смарт-контрактов","Smart Contract Security Audit":"Аудит безопасности смарт-контрактов","Telegram Development":"Разработка телеграм","Telegram Bots":"Разработка телеграм ботов","Telegram Mini Apps":"Разработка мини приложений телеграм","Telegram Wallet":"Разработка крипто кошелька телеграм","Telegram P2P Exchange Bot":"Разработка P2P телеграм бота обменника"}')},1172:function(t){"use strict";t.exports=JSON.parse('{"Home":"Главная","Products":"Продукты","Services":"Услуги","Portfolio":"Портфолио","About":"Обо мне","Projects":"Проекты","Blog":"Блог"}')},8387:function(t){"use strict";t.exports=JSON.parse('{"Get in Touch":"Связаться","Feel free to contact me":"Не стесняйтесь обратиться ко мне","emailSubject":"%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81%20%D1%81%20%D1%81%D0%B0%D0%B9%D1%82%D0%B0%20ivannikov.pro"}')},4167:function(t){"use strict";t.exports=JSON.parse('{"Portfolio":"Портфолио","portfolioDescription":"Заказная разработка блокчейн / веб3 / крипто проектов.","Aleksandr Ivannikov":"Александр Иванников","Get in Touch":"Связаться","Read more":"Подробнее","More":"Больше"}')},6115:function(t){"use strict";t.exports=JSON.parse('{"Privacy":"Политика конфиденциальности","To Home Page":"На главную"}')},1416:function(t){"use strict";t.exports=JSON.parse('{"Products":"Продукты","IVANNIKOV.PRO":"ИВАННИКОВ.ПРО","Aleksandr Ivannikov":"Александр Иванников","Get in Touch":"Связаться","Hotcoin Database":"Hotcoin база данных","productDescription":"$HOT @herewalletbot база данных.","keywordsList":"hotcoin database,herewalletbot database,hotcoin,hot coin,hot token,$hot,hot near blockchain,hot near,near wallet bot,near wallet,near blockchain"}')},8386:function(t){"use strict";t.exports=JSON.parse('{"Products":"Продукты","IVANNIKOV.PRO":"ИВАННИКОВ.ПРО","Aleksandr Ivannikov":"Александр Иванников","Get in Touch":"Связаться","Notcoin Database":"Notcoin база данных","productDescription":"$NOT @notcoin @notcoin_bot база данных.","keywordsList":"notcoin database,notcoin database,notcoin_bot database,notcoin,notcoin_bot,not coin,not token,$not,not telegram blockchain,not telegram,telegram wallet bot,telegram wallet,telegram blockchain"}')},9453:function(t){"use strict";t.exports=JSON.parse('{"Products":"Продукты","productsDescription":"Продукты Описание","Aleksandr Ivannikov":"Александр Иванников","Get in Touch":"Связаться","More":"Больше"}')},4179:function(t){"use strict";t.exports=JSON.parse('{"Projects":"Проекты","projectsDescription":"","Aleksandr Ivannikov":"Александр Иванников","Get in Touch":"Связаться","More":"Больше"}')},8981:function(t){"use strict";t.exports=JSON.parse('{"Services":"Услуги","servicesDescription":"Услуги Описание","Aleksandr Ivannikov":"Александр Иванников","Get in Touch":"Связаться","More":"Больше"}')},4888:function(t){"use strict";t.exports=JSON.parse('{"Terms":"Условия","To Home Page":"На главную"}')},1512:function(t){"use strict";t.exports=JSON.parse('{"IVANNIKOV.PRO":"ИВАННИКОВ.ПРО","ProjectName":"IVANNIKOV.PRO","ProjectSlogan":"Заказная разработка блокчейн / веб3 / крипто проектов","Aleksandr Ivannikov":"Александр Иванников","Introduction":"От решения конкретной задачи, до разработки проекта «под ключ».","Get in Touch":"Связаться","helloWorld":"Привет, мир","indexNote":"Это индексная страница.","secondPageLink":"Ссылка на вторую страницу","thirdPageLink":"Ссылка на третью страницу","indexPageLink":"Ссылка на индексную страницу","secondPageGermanLink":"Ссылка на вторую страницу (Русский)","indexPageEnglishLink":"Ссылка на индексную страницу (Englisch)","overviewLang":"Обзор языков","thirdPage":"Dritte Seite","thirdNote":"Dies ist die dritte Seite","home":"Главная"}')}},function(t){t.O(0,[869,593],(function(){return e=6498,t(t.s=e);var e}));t.O()}]); -//# sourceMappingURL=app-4e1d8fdb385a026c30df.js.map \ No newline at end of file diff --git a/app-4e1d8fdb385a026c30df.js.map b/app-4e1d8fdb385a026c30df.js.map deleted file mode 100644 index c4c56d4..0000000 --- a/app-4e1d8fdb385a026c30df.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"app-4e1d8fdb385a026c30df.js","mappings":"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","sources":["webpack://ivannikov.pro-website/./i18n/react-i18next/ sync ^\\.\\/.*\\.json$","webpack://ivannikov.pro-website/./node_modules/gatsby-page-utils/dist/apply-trailing-slash-option.js","webpack://ivannikov.pro-website/./node_modules/gatsby-react-router-scroll/index.js","webpack://ivannikov.pro-website/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://ivannikov.pro-website/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://ivannikov.pro-website/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://ivannikov.pro-website/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://ivannikov.pro-website/./node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js","webpack://ivannikov.pro-website/./node_modules/gatsby/dist/internal-plugins/partytown/utils/get-forwards.js","webpack://ivannikov.pro-website/./node_modules/gatsby/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js","webpack://ivannikov.pro-website/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://ivannikov.pro-website/./.cache/api-runner-browser-plugins.js","webpack://ivannikov.pro-website/./.cache/api-runner-browser.js","webpack://ivannikov.pro-website/./.cache/create-content-digest-browser-shim.js","webpack://ivannikov.pro-website/./.cache/emitter.js","webpack://ivannikov.pro-website/./node_modules/mitt/dist/mitt.es.js","webpack://ivannikov.pro-website/./.cache/normalize-page-path.js","webpack://ivannikov.pro-website/./.cache/find-path.js","webpack://ivannikov.pro-website/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://ivannikov.pro-website/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://ivannikov.pro-website/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://ivannikov.pro-website/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://ivannikov.pro-website/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://ivannikov.pro-website/./.cache/slice/server-slice-renderer.js","webpack://ivannikov.pro-website/./.cache/slice/server-slice.js","webpack://ivannikov.pro-website/./.cache/slice/inline-slice.js","webpack://ivannikov.pro-website/./.cache/slice.js","webpack://ivannikov.pro-website/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://ivannikov.pro-website/./.cache/gatsby-browser-entry.js","webpack://ivannikov.pro-website/./.cache/prefetch.js","webpack://ivannikov.pro-website/./.cache/loader.js","webpack://ivannikov.pro-website/./.cache/head/components/fire-callback-in-effect.js","webpack://ivannikov.pro-website/./.cache/head/constants.js","webpack://ivannikov.pro-website/./.cache/head/utils.js","webpack://ivannikov.pro-website/./.cache/head/head-export-handler-for-browser.js","webpack://ivannikov.pro-website/./.cache/page-renderer.js","webpack://ivannikov.pro-website/./.cache/route-announcer-props.js","webpack://ivannikov.pro-website/./.cache/navigation.js","webpack://ivannikov.pro-website/./node_modules/shallow-compare/es/index.js","webpack://ivannikov.pro-website/./.cache/ensure-resources.js","webpack://ivannikov.pro-website/./.cache/production-app.js","webpack://ivannikov.pro-website/./.cache/public-page-renderer-prod.js","webpack://ivannikov.pro-website/./.cache/public-page-renderer.js","webpack://ivannikov.pro-website/./.cache/react-dom-utils.js","webpack://ivannikov.pro-website/./.cache/redirect-utils.js","webpack://ivannikov.pro-website/./.cache/register-service-worker.js","webpack://ivannikov.pro-website/./.cache/slice/context.js","webpack://ivannikov.pro-website/./.cache/static-query.js","webpack://ivannikov.pro-website/./.cache/context-utils.js","webpack://ivannikov.pro-website/./.cache/strip-prefix.js","webpack://ivannikov.pro-website/./node_modules/gatsby-plugin-google-gtag/gatsby-browser.js","webpack://ivannikov.pro-website/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://ivannikov.pro-website/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://ivannikov.pro-website/./node_modules/gatsby-plugin-yandex-metrica/gatsby-browser.js","webpack://ivannikov.pro-website/./node_modules/gatsby-remark-images/constants.js","webpack://ivannikov.pro-website/./node_modules/gatsby-remark-images/gatsby-browser.js","webpack://ivannikov.pro-website/./node_modules/i18next/dist/esm/i18next.js","webpack://ivannikov.pro-website/./node_modules/gatsby-theme-i18n-react-i18next/src/wrap-page-element.js","webpack://ivannikov.pro-website/./node_modules/gatsby-theme-i18n-react-i18next/utils/default-options.js","webpack://ivannikov.pro-website/./node_modules/gatsby-theme-i18n/src/components/seo.js","webpack://ivannikov.pro-website/./node_modules/gatsby-theme-i18n/src/wrap-page-element.js","webpack://ivannikov.pro-website/./node_modules/gatsby-theme-i18n/src/components/localized-link.js","webpack://ivannikov.pro-website/./node_modules/gatsby-theme-i18n/src/context.js","webpack://ivannikov.pro-website/./node_modules/gatsby-theme-i18n/src/helpers.js","webpack://ivannikov.pro-website/./node_modules/gatsby-theme-i18n/src/hooks/use-localization.js","webpack://ivannikov.pro-website/./node_modules/gatsby-theme-i18n/utils/default-options.js","webpack://ivannikov.pro-website/./src/constants/index.ts","webpack://ivannikov.pro-website/./src/modal/GetInTouchModalBody.jsx","webpack://ivannikov.pro-website/./src/modal/GetInTouchModal.jsx","webpack://ivannikov.pro-website/./plugins/gatsby-react-simple-modal-provider/gatsby-browser.js","webpack://ivannikov.pro-website/./plugins/gatsby-react-simple-modal-provider/wrap-with-provider.js","webpack://ivannikov.pro-website/./node_modules/redux/dist/redux.mjs","webpack://ivannikov.pro-website/./node_modules/redux-persist/es/constants.js","webpack://ivannikov.pro-website/./node_modules/redux-persist/es/stateReconciler/autoMergeLevel1.js","webpack://ivannikov.pro-website/./node_modules/redux-persist/es/createPersistoid.js","webpack://ivannikov.pro-website/./node_modules/redux-persist/es/getStoredState.js","webpack://ivannikov.pro-website/./node_modules/redux-persist/es/purgeStoredState.js","webpack://ivannikov.pro-website/./node_modules/redux-persist/es/persistReducer.js","webpack://ivannikov.pro-website/./node_modules/redux-persist/es/persistStore.js","webpack://ivannikov.pro-website/./node_modules/@redux-saga/symbols/dist/redux-saga-symbols.esm.js","webpack://ivannikov.pro-website/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://ivannikov.pro-website/./node_modules/@redux-saga/is/dist/redux-saga-is.esm.js","webpack://ivannikov.pro-website/./node_modules/@redux-saga/core/dist/io-22ea0cf9.js","webpack://ivannikov.pro-website/./node_modules/@redux-saga/deferred/dist/redux-saga-deferred.esm.js","webpack://ivannikov.pro-website/./node_modules/@redux-saga/core/dist/redux-saga-core.esm.js","webpack://ivannikov.pro-website/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://ivannikov.pro-website/./node_modules/redux-saga/dist/redux-saga-core-npm-proxy.esm.js","webpack://ivannikov.pro-website/./src/store/enhancers.js","webpack://ivannikov.pro-website/./src/store/rehydrate/actionTypes.js","webpack://ivannikov.pro-website/./src/store/rehydrate/reducers.js","webpack://ivannikov.pro-website/./src/store/theme/reducers.js","webpack://ivannikov.pro-website/./src/store/mobileMenu/reducers.js","webpack://ivannikov.pro-website/./src/store/rootReducer.js","webpack://ivannikov.pro-website/./node_modules/@redux-saga/core/dist/redux-saga-effects.esm.js","webpack://ivannikov.pro-website/./src/store/lib.js","webpack://ivannikov.pro-website/./src/store/rehydrate/selectors.js","webpack://ivannikov.pro-website/./src/store/rehydrate/sagas.js","webpack://ivannikov.pro-website/./src/store/rehydrate/actions.js","webpack://ivannikov.pro-website/./src/store/rehydrate/sagaRegister.js","webpack://ivannikov.pro-website/./src/store/mobileMenu/sagas.js","webpack://ivannikov.pro-website/./src/store/mobileMenu/sagaRegister.js","webpack://ivannikov.pro-website/./src/store/rootSaga.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/helpers/bind.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/utils.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/core/AxiosError.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/helpers/toFormData.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/helpers/buildURL.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/core/InterceptorManager.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/defaults/transitional.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/platform/browser/index.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/platform/common/utils.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/platform/index.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/defaults/index.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/core/transformData.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/cancel/isCancel.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/cancel/CanceledError.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/helpers/cookies.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/core/buildFullPath.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/helpers/combineURLs.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/helpers/speedometer.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/adapters/xhr.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/core/settle.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/adapters/adapters.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/helpers/null.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/core/dispatchRequest.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/core/mergeConfig.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/env/data.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/helpers/validator.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/core/Axios.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/cancel/CancelToken.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/axios.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/helpers/spread.js","webpack://ivannikov.pro-website/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://ivannikov.pro-website/./node_modules/query-string/node_modules/decode-uri-component/index.js","webpack://ivannikov.pro-website/./node_modules/split-on-first/index.js","webpack://ivannikov.pro-website/./node_modules/filter-obj/index.js","webpack://ivannikov.pro-website/./node_modules/query-string/base.js","webpack://ivannikov.pro-website/./node_modules/query-string/index.js","webpack://ivannikov.pro-website/./node_modules/ramda/es/internal/_has.js","webpack://ivannikov.pro-website/./node_modules/ramda/es/internal/_objectAssign.js","webpack://ivannikov.pro-website/./node_modules/ramda/es/internal/_isPlaceholder.js","webpack://ivannikov.pro-website/./node_modules/ramda/es/internal/_curry1.js","webpack://ivannikov.pro-website/./node_modules/ramda/es/internal/_curry2.js","webpack://ivannikov.pro-website/./node_modules/ramda/es/merge.js","webpack://ivannikov.pro-website/./node_modules/ramda/es/mergeRight.js","webpack://ivannikov.pro-website/./node_modules/ramda/es/internal/_curry3.js","webpack://ivannikov.pro-website/./node_modules/ramda/es/defaultTo.js","webpack://ivannikov.pro-website/./node_modules/ramda/es/internal/_isInteger.js","webpack://ivannikov.pro-website/./node_modules/ramda/es/nth.js","webpack://ivannikov.pro-website/./node_modules/ramda/es/internal/_isString.js","webpack://ivannikov.pro-website/./node_modules/ramda/es/paths.js","webpack://ivannikov.pro-website/./node_modules/ramda/es/path.js","webpack://ivannikov.pro-website/./node_modules/ramda/es/pathOr.js","webpack://ivannikov.pro-website/./node_modules/ramda/es/prop.js","webpack://ivannikov.pro-website/./node_modules/uuid/dist/esm-browser/native.js","webpack://ivannikov.pro-website/./node_modules/uuid/dist/esm-browser/rng.js","webpack://ivannikov.pro-website/./node_modules/uuid/dist/esm-browser/stringify.js","webpack://ivannikov.pro-website/./node_modules/uuid/dist/esm-browser/v4.js","webpack://ivannikov.pro-website/./src/api/http.js","webpack://ivannikov.pro-website/./src/api/index.js","webpack://ivannikov.pro-website/./src/store/configureStore.js","webpack://ivannikov.pro-website/./plugins/gatsby-redux-provider/gatsby-browser.js","webpack://ivannikov.pro-website/./plugins/gatsby-redux-provider/wrap-with-provider.js","webpack://ivannikov.pro-website/./plugins/gatsby-theme-provider/gatsby-browser.js","webpack://ivannikov.pro-website/./plugins/gatsby-theme-provider/wrap-with-provider.js","webpack://ivannikov.pro-website/./src/components/CommonButton.jsx","webpack://ivannikov.pro-website/./src/components/Link/Link.jsx","webpack://ivannikov.pro-website/./src/utils/getExternalLinkProps.ts","webpack://ivannikov.pro-website/./src/components/Link/LinkExternal.jsx","webpack://ivannikov.pro-website/./src/configs.js","webpack://ivannikov.pro-website/./src/store/mobileMenu/actionTypes.js","webpack://ivannikov.pro-website/./src/store/mobileMenu/actions.js","webpack://ivannikov.pro-website/./src/store/mobileMenu/selectors.js","webpack://ivannikov.pro-website/./src/store/theme/selectors.js","webpack://ivannikov.pro-website/./src/store/theme/actionTypes.js","webpack://ivannikov.pro-website/./src/store/theme/actions.js","webpack://ivannikov.pro-website/./src/theme/index.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/TrieUtils.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/predicates/isCollection.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/predicates/isKeyed.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/predicates/isIndexed.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/predicates/isAssociative.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/Collection.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/predicates/isSeq.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/predicates/isRecord.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/predicates/isImmutable.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/predicates/isOrdered.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/Iterator.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/utils/hasOwnProperty.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/utils/isArrayLike.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/Seq.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/predicates/isMap.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/predicates/isOrderedMap.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/predicates/isValueObject.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/is.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/Math.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/Hash.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/Operations.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/utils/arrCopy.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/utils/invariant.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/utils/assertNotInfinite.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/utils/coerceKeyPath.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/utils/isPlainObj.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/utils/isDataStructure.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/utils/quoteString.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/functional/get.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/functional/has.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/utils/shallowCopy.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/functional/updateIn.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/functional/remove.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/functional/set.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/functional/setIn.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/methods/setIn.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/methods/deleteIn.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/functional/removeIn.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/functional/update.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/methods/update.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/methods/updateIn.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/methods/merge.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/functional/merge.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/methods/mergeDeep.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/methods/mergeIn.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/methods/mergeDeepIn.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/methods/withMutations.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/methods/asMutable.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/methods/asImmutable.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/methods/wasAltered.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/Map.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/predicates/isList.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/List.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/OrderedMap.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/predicates/isStack.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/Stack.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/predicates/isSet.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/predicates/isOrderedSet.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/utils/deepEqual.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/utils/mixin.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/toJS.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/Set.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/Range.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/functional/getIn.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/methods/getIn.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/methods/toObject.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/CollectionImpl.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/methods/hasIn.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/functional/hasIn.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/OrderedSet.js","webpack://ivannikov.pro-website/./node_modules/immutable/dist/es/Record.js","webpack://ivannikov.pro-website/./node_modules/invariant/browser.js","webpack://ivannikov.pro-website/./node_modules/react-fast-compare/index.js","webpack://ivannikov.pro-website/./node_modules/react-helmet/es/Helmet.js","webpack://ivannikov.pro-website/./node_modules/react-server-dom-webpack/cjs/react-server-dom-webpack.production.min.js","webpack://ivannikov.pro-website/./node_modules/react-server-dom-webpack/index.js","webpack://ivannikov.pro-website/./node_modules/react-side-effect/lib/index.js","webpack://ivannikov.pro-website/./node_modules/react-simple-modal-provider/dist/Modal.js","webpack://ivannikov.pro-website/./node_modules/react-simple-modal-provider/dist/ModalProvider.js","webpack://ivannikov.pro-website/./node_modules/react-simple-modal-provider/dist/Portal.js","webpack://ivannikov.pro-website/./node_modules/react-simple-modal-provider/dist/PortalBody.js","webpack://ivannikov.pro-website/./node_modules/react-simple-modal-provider/dist/Spinner.js","webpack://ivannikov.pro-website/./node_modules/react-simple-modal-provider/dist/assets/SpinnerSVG.js","webpack://ivannikov.pro-website/./node_modules/react-simple-modal-provider/dist/constants.js","webpack://ivannikov.pro-website/./node_modules/react-simple-modal-provider/dist/index.js","webpack://ivannikov.pro-website/./node_modules/react-simple-modal-provider/dist/modalAnimation.js","webpack://ivannikov.pro-website/./node_modules/react-simple-modal-provider/dist/modalContext.js","webpack://ivannikov.pro-website/./node_modules/react-simple-modal-provider/dist/useModalState.js","webpack://ivannikov.pro-website/./node_modules/react-simple-modal-provider/dist/utils.js","webpack://ivannikov.pro-website/./node_modules/redux-logger/dist/redux-logger.js","webpack://ivannikov.pro-website/./node_modules/redux-persist/lib/stateReconciler/autoMergeLevel1.js","webpack://ivannikov.pro-website/./node_modules/redux-persist/lib/storage/createWebStorage.js","webpack://ivannikov.pro-website/./node_modules/redux-persist/lib/storage/getStorage.js","webpack://ivannikov.pro-website/./node_modules/redux-persist/lib/storage/index.js","webpack://ivannikov.pro-website/./node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.min.js","webpack://ivannikov.pro-website/./node_modules/use-sync-external-store/with-selector.js","webpack://ivannikov.pro-website/./node_modules/void-elements/index.js","webpack://ivannikov.pro-website/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://ivannikov.pro-website/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://ivannikov.pro-website/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://ivannikov.pro-website/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://ivannikov.pro-website/./node_modules/@builder.io/partytown/integration/index.cjs","webpack://ivannikov.pro-website/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://ivannikov.pro-website/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://ivannikov.pro-website/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://ivannikov.pro-website/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://ivannikov.pro-website/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://ivannikov.pro-website/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://ivannikov.pro-website/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://ivannikov.pro-website/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://ivannikov.pro-website/./node_modules/@gatsbyjs/reach-router/dist/index.modern.mjs","webpack://ivannikov.pro-website/./node_modules/gatsby-link/dist/index.modern.mjs","webpack://ivannikov.pro-website/./node_modules/gatsby-script/dist/index.modern.mjs","webpack://ivannikov.pro-website/./node_modules/html-parse-stringify/dist/html-parse-stringify.module.js","webpack://ivannikov.pro-website/./node_modules/react-i18next/dist/es/utils.js","webpack://ivannikov.pro-website/./node_modules/react-i18next/dist/es/unescape.js","webpack://ivannikov.pro-website/./node_modules/react-i18next/dist/es/defaults.js","webpack://ivannikov.pro-website/./node_modules/react-i18next/dist/es/i18nInstance.js","webpack://ivannikov.pro-website/./node_modules/react-i18next/dist/es/initReactI18next.js","webpack://ivannikov.pro-website/./node_modules/react-i18next/dist/es/context.js","webpack://ivannikov.pro-website/./node_modules/react-i18next/dist/es/useTranslation.js","webpack://ivannikov.pro-website/./node_modules/react-i18next/dist/es/I18nextProvider.js","webpack://ivannikov.pro-website/./node_modules/react-redux/dist/react-redux.mjs"],"sourcesContent":["var map = {\n\t\"./en/404.json\": 669,\n\t\"./en/about.json\": 4048,\n\t\"./en/blog.json\": 395,\n\t\"./en/curriculum-vitae.json\": 8416,\n\t\"./en/footer.json\": 7184,\n\t\"./en/header.json\": 9454,\n\t\"./en/modal-get-in-touch.json\": 3173,\n\t\"./en/portfolio.json\": 7797,\n\t\"./en/privacy.json\": 5689,\n\t\"./en/products-hotcoin-database.json\": 6210,\n\t\"./en/products-notcoin-database.json\": 8680,\n\t\"./en/products.json\": 1979,\n\t\"./en/projects.json\": 1173,\n\t\"./en/services.json\": 3183,\n\t\"./en/terms.json\": 9218,\n\t\"./en/translation.json\": 2206,\n\t\"./ru/404.json\": 6915,\n\t\"./ru/about.json\": 7598,\n\t\"./ru/blog.json\": 6537,\n\t\"./ru/curriculum-vitae.json\": 9654,\n\t\"./ru/footer.json\": 9146,\n\t\"./ru/header.json\": 1172,\n\t\"./ru/modal-get-in-touch.json\": 8387,\n\t\"./ru/portfolio.json\": 4167,\n\t\"./ru/privacy.json\": 6115,\n\t\"./ru/products-hotcoin-database.json\": 1416,\n\t\"./ru/products-notcoin-database.json\": 8386,\n\t\"./ru/products.json\": 9453,\n\t\"./ru/projects.json\": 4179,\n\t\"./ru/services.json\": 8981,\n\t\"./ru/terms.json\": 4888,\n\t\"./ru/translation.json\": 1512\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 262;","\"use strict\";\n\nexports.__esModule = true;\nexports.applyTrailingSlashOption = void 0;\nconst endsWithSuffixes = (suffixes, input) => {\n for (const suffix of suffixes) {\n if (input.endsWith(suffix)) return true;\n }\n return false;\n};\nconst suffixes = [`.html`, `.json`, `.js`, `.map`, `.txt`, `.xml`, `.pdf`];\nconst applyTrailingSlashOption = (input, option = `always`) => {\n if (input === `/`) return input;\n const hasTrailingSlash = input.endsWith(`/`);\n if (endsWithSuffixes(suffixes, input)) {\n return input;\n }\n if (option === `always`) {\n return hasTrailingSlash ? input : `${input}/`;\n }\n if (option === `never`) {\n return hasTrailingSlash ? input.slice(0, -1) : input;\n }\n return input;\n};\nexports.applyTrailingSlashOption = applyTrailingSlashOption;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\nvar _scrollHandler = require(\"./scroll-handler\");\nexports.ScrollContext = _scrollHandler.ScrollHandler;\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _sessionStorage = require(\"./session-storage\");\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n function ScrollHandler() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n if (!shouldUpdateScroll) {\n return true;\n }\n\n // Hack to allow accessing this._stateStorage.\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n return _this;\n }\n var _proto = ScrollHandler.prototype;\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n this._isTicking = false;\n };\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** If a hash is present in the browser url as the component mounts (i.e. the user is navigating\n * from an external website) then scroll to the hash instead of any previously stored scroll\n * position. */\n if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n } else if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n }\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n return ScrollHandler;\n}(React.Component);\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n var _proto = SessionStorage.prototype;\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n return 0;\n }\n };\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n return SessionStorage;\n}();\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\nvar _scrollHandler = require(\"./scroll-handler\");\nvar _react = require(\"react\");\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","\"use strict\";\n\nmodule.exports = Object.assign;\n//# sourceMappingURL=object-assign.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.onInitialClientRender = void 0;\nvar _gatsbyScript = require(\"gatsby-script\");\nvar _injectPartytownSnippet = require(\"./utils/inject-partytown-snippet\");\n// Makes sure off-main-thread scripts are loaded in `gatsby develop`\nconst onInitialClientRender = () => {\n if (process.env.NODE_ENV !== `development`) {\n return;\n }\n (0, _injectPartytownSnippet.injectPartytownSnippet)(_gatsbyScript.collectedScriptsByPage.get(window.location.pathname));\n\n // Clear scripts after we've used them to avoid leaky behavior\n _gatsbyScript.collectedScriptsByPage.delete(window.location.pathname);\n};\n\n// Client-side navigation (CSR, e.g. Gatsby Link navigations) are broken upstream in Partytown.\n// We need an official API from Partytown for handling re-configuration and on-demand script loading.\n// Until then, `off-main-thread` scripts load only on server-side navigation (SSR).\n// See https://github.com/BuilderIO/partytown/issues/74 for more details.\nexports.onInitialClientRender = onInitialClientRender;\n//# sourceMappingURL=gatsby-browser.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.getForwards = getForwards;\nfunction getForwards(collectedScripts) {\n return collectedScripts === null || collectedScripts === void 0 ? void 0 : collectedScripts.flatMap(script => (script === null || script === void 0 ? void 0 : script.forward) || []);\n}\n//# sourceMappingURL=get-forwards.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.injectPartytownSnippet = injectPartytownSnippet;\nvar _integration = require(\"@builder.io/partytown/integration\");\nvar _getForwards = require(\"./get-forwards\");\n// Adapted from https://github.com/BuilderIO/partytown/blob/main/src/react/snippet.tsx to only include CSR logic\nfunction injectPartytownSnippet(collectedScripts) {\n if (!collectedScripts.length) {\n return;\n }\n const existingSnippet = document.querySelector(`script[data-partytown]`);\n const existingSandbox = document.querySelector(`iframe[src*=\"~partytown/partytown-sandbox-sw\"]`);\n if (existingSnippet) {\n existingSnippet.remove();\n }\n if (existingSandbox) {\n existingSandbox.remove();\n }\n const forwards = (0, _getForwards.getForwards)(collectedScripts);\n const snippet = document.createElement(`script`);\n snippet.dataset.partytown = ``;\n snippet.innerHTML = (0, _integration.partytownSnippet)({\n forward: forwards\n });\n document.head.appendChild(snippet);\n}\n//# sourceMappingURL=inject-partytown-snippet.js.map","exports.components = {\n \"component---src-pages-404-jsx\": () => import(\"./../../../src/pages/404.jsx\" /* webpackChunkName: \"component---src-pages-404-jsx\" */),\n \"component---src-pages-about-jsx\": () => import(\"./../../../src/pages/about.jsx\" /* webpackChunkName: \"component---src-pages-about-jsx\" */),\n \"component---src-pages-blog-blog-post-jsx\": () => import(\"./../../../src/pages/blog/blog-post.jsx\" /* webpackChunkName: \"component---src-pages-blog-blog-post-jsx\" */),\n \"component---src-pages-blog-jsx\": () => import(\"./../../../src/pages/blog.jsx\" /* webpackChunkName: \"component---src-pages-blog-jsx\" */),\n \"component---src-pages-curriculum-vitae-jsx\": () => import(\"./../../../src/pages/curriculum-vitae.jsx\" /* webpackChunkName: \"component---src-pages-curriculum-vitae-jsx\" */),\n \"component---src-pages-cv-jsx\": () => import(\"./../../../src/pages/cv.jsx\" /* webpackChunkName: \"component---src-pages-cv-jsx\" */),\n \"component---src-pages-index-jsx\": () => import(\"./../../../src/pages/index.jsx\" /* webpackChunkName: \"component---src-pages-index-jsx\" */),\n \"component---src-pages-portfolio-fibonacci-assistant-telegram-bot-jsx\": () => import(\"./../../../src/pages/portfolio/fibonacci-assistant-telegram-bot.jsx\" /* webpackChunkName: \"component---src-pages-portfolio-fibonacci-assistant-telegram-bot-jsx\" */),\n \"component---src-pages-portfolio-grabcoinclub-nft-jsx\": () => import(\"./../../../src/pages/portfolio/grabcoinclub-nft.jsx\" /* webpackChunkName: \"component---src-pages-portfolio-grabcoinclub-nft-jsx\" */),\n \"component---src-pages-portfolio-jsx\": () => import(\"./../../../src/pages/portfolio.jsx\" /* webpackChunkName: \"component---src-pages-portfolio-jsx\" */),\n \"component---src-pages-portfolio-poolex-ai-jsx\": () => import(\"./../../../src/pages/portfolio/poolex-ai.jsx\" /* webpackChunkName: \"component---src-pages-portfolio-poolex-ai-jsx\" */),\n \"component---src-pages-portfolio-roborovski-nft-jsx\": () => import(\"./../../../src/pages/portfolio/roborovski-nft.jsx\" /* webpackChunkName: \"component---src-pages-portfolio-roborovski-nft-jsx\" */),\n \"component---src-pages-portfolio-uls-token-jsx\": () => import(\"./../../../src/pages/portfolio/uls-token.jsx\" /* webpackChunkName: \"component---src-pages-portfolio-uls-token-jsx\" */),\n \"component---src-pages-portfolio-world-millionaire-challenge-jsx\": () => import(\"./../../../src/pages/portfolio/world-millionaire-challenge.jsx\" /* webpackChunkName: \"component---src-pages-portfolio-world-millionaire-challenge-jsx\" */),\n \"component---src-pages-privacy-jsx\": () => import(\"./../../../src/pages/privacy.jsx\" /* webpackChunkName: \"component---src-pages-privacy-jsx\" */),\n \"component---src-pages-products-hotcoin-database-jsx\": () => import(\"./../../../src/pages/products/hotcoin-database.jsx\" /* webpackChunkName: \"component---src-pages-products-hotcoin-database-jsx\" */),\n \"component---src-pages-products-jsx\": () => import(\"./../../../src/pages/products.jsx\" /* webpackChunkName: \"component---src-pages-products-jsx\" */),\n \"component---src-pages-products-notcoin-database-jsx\": () => import(\"./../../../src/pages/products/notcoin-database.jsx\" /* webpackChunkName: \"component---src-pages-products-notcoin-database-jsx\" */),\n \"component---src-pages-projects-jsx\": () => import(\"./../../../src/pages/projects.jsx\" /* webpackChunkName: \"component---src-pages-projects-jsx\" */),\n \"component---src-pages-services-forks-jsx\": () => import(\"./../../../src/pages/services/forks.jsx\" /* webpackChunkName: \"component---src-pages-services-forks-jsx\" */),\n \"component---src-pages-services-jsx\": () => import(\"./../../../src/pages/services.jsx\" /* webpackChunkName: \"component---src-pages-services-jsx\" */),\n \"component---src-pages-services-telegram-bots-jsx\": () => import(\"./../../../src/pages/services/telegram-bots.jsx\" /* webpackChunkName: \"component---src-pages-services-telegram-bots-jsx\" */),\n \"component---src-pages-terms-jsx\": () => import(\"./../../../src/pages/terms.jsx\" /* webpackChunkName: \"component---src-pages-terms-jsx\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"icon\":\"src/images/icon.png\",\"name\":\"IVANNIKOV.PRO\",\"short_name\":\"IVANNIKOV.PRO\",\"description\":\"Custom development of Blockchain / Web3 / Crypto projects\",\"start_url\":\"/\",\"background_color\":\"#f7f0eb\",\"theme_color\":\"#a2466c\",\"lang\":\"en\",\"display\":\"standalone\",\"localize\":[{\"start_url\":\"/ru/\",\"lang\":\"ru\",\"name\":\"IVANNIKOV.PRO\",\"short_name\":\"IVANNIKOV.PRO\",\"description\":\"Заказная разработка блокчейн / веб3 / крипто проектов\"}],\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"1dee58e1ee58b3f3a28d908e0c265fa4\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-google-gtag/gatsby-browser.js'),\n options: {\"plugins\":[],\"trackingIds\":[\"G-ZPD3FNRKQQ\",\"GT-NNM8DV6\",\"AW-16456714470\"],\"gtagConfig\":{\"optimize_id\":\"OPT_CONTAINER_ID\",\"anonymize_ip\":false,\"cookie_expires\":0},\"pluginConfig\":{\"head\":true,\"respectDNT\":true,\"exclude\":[\"/preview/**\",\"/do-not-track/me/too/\"],\"origin\":\"https://ivannikov.pro\",\"delayOnRouteUpdate\":0}},\n },{\n plugin: require('../node_modules/gatsby-plugin-yandex-metrica/gatsby-browser.js'),\n options: {\"plugins\":[],\"trackingId\":96422747,\"clickmap\":true,\"trackLinks\":true,\"accurateTrackBounce\":true,\"trackHash\":true,\"webvisor\":true},\n },{\n plugin: require('../plugins/gatsby-theme-provider/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../plugins/gatsby-redux-provider/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../plugins/gatsby-react-simple-modal-provider/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-remark-images/gatsby-browser.js'),\n options: {\"plugins\":[],\"maxWidth\":590,\"linkImagesToOriginal\":true,\"showCaptions\":false,\"markdownCaptions\":false,\"backgroundColor\":\"white\",\"quality\":50,\"withWebp\":false,\"withAvif\":false,\"loading\":\"lazy\",\"decoding\":\"async\",\"disableBgImageOnAlpha\":false,\"disableBgImage\":false},\n },{\n plugin: require('../node_modules/gatsby-theme-i18n/gatsby-browser.js'),\n options: {\"plugins\":[],\"defaultLang\":\"en\",\"configPath\":\"/Users/ivannikov/work/ivannikov-pro/ivannikov.pro-project/ivannikov.pro-website/i18n/config.json\"},\n },{\n plugin: require('../node_modules/gatsby-theme-i18n-react-i18next/gatsby-browser.js'),\n options: {\"plugins\":[],\"locales\":\"./i18n/react-i18next\",\"i18nextOptions\":{\"ns\":[\"translation\",\"404\",\"header\",\"footer\",\"terms\",\"privacy\",\"about\",\"curriculum-vitae\",\"projects\",\"blog\",\"products\",\"products-notcoin-database\",\"products-hotcoin-database\",\"services\",\"portfolio\",\"projects\",\"modal-get-in-touch\"]}},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst { getResourceURLsForPathname, loadPage, loadPageSync } =\n require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","exports.createContentDigest = () => ``\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","export default pathAndSearch => {\n if (pathAndSearch === undefined) {\n return pathAndSearch\n }\n let [path, search = ``] = pathAndSearch.split(`?`)\n if (search) {\n search = `?` + search\n }\n\n if (path === `/`) {\n return `/` + search\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1) + search\n }\n return path + search\n}\n","import { pick } from \"@gatsbyjs/reach-router\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n let newRawPathname = rawPathname\n const queryIndex = rawPathname.indexOf(`?`)\n\n if (queryIndex !== -1) {\n const [path, qs] = rawPathname.split(`?`)\n newRawPathname = `${path}?${encodeURIComponent(qs)}`\n }\n\n const pathname = decodeURIComponent(newRawPathname)\n\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(\n pathname,\n decodeURIComponent(__BASE_PATH__)\n )\n // Remove any hashfragment\n .split(`#`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n const redirect = maybeGetBrowserRedirect(rawPathname)\n if (redirect) {\n return findPath(redirect.toPath)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n try {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n } catch (e) {\n return typeof fn === \"function\";\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}","import React from \"react\"\n\nexport const ServerSliceRenderer = ({ sliceId, children }) => {\n const contents = [\n React.createElement(`slice-start`, {\n id: `${sliceId}-1`,\n }),\n React.createElement(`slice-end`, {\n id: `${sliceId}-1`,\n }),\n ]\n\n if (children) {\n // if children exist, we split the slice into a before and after piece\n // see renderSlices in render-html\n contents.push(children)\n contents.push(\n React.createElement(`slice-start`, {\n id: `${sliceId}-2`,\n }),\n React.createElement(`slice-end`, {\n id: `${sliceId}-2`,\n })\n )\n }\n\n return contents\n}\n","import React, { useContext } from \"react\"\nimport { createContentDigest } from \"gatsby-core-utils/create-content-digest\"\nimport { SlicesMapContext, SlicesPropsContext } from \"./context\"\nimport { ServerSliceRenderer } from \"./server-slice-renderer\"\n\nconst getSliceId = (sliceName, sliceProps) => {\n if (!Object.keys(sliceProps).length) {\n return sliceName\n }\n\n const propsString = createContentDigest(sliceProps)\n return `${sliceName}-${propsString}`\n}\n\nexport const ServerSlice = ({\n sliceName,\n allowEmpty,\n children,\n ...sliceProps\n}) => {\n const slicesMap = useContext(SlicesMapContext)\n const slicesProps = useContext(SlicesPropsContext)\n const concreteSliceName = slicesMap[sliceName]\n\n if (!concreteSliceName) {\n if (allowEmpty) {\n return null\n } else {\n throw new Error(\n `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n )\n }\n }\n\n const sliceId = getSliceId(concreteSliceName, sliceProps)\n\n // set props on context object for static-entry to return\n let sliceUsage = slicesProps[sliceId]\n if (!sliceUsage) {\n slicesProps[sliceId] = sliceUsage = {\n props: sliceProps,\n sliceName: concreteSliceName,\n hasChildren: !!children,\n }\n } else {\n if (children) {\n sliceUsage.hasChildren = true\n }\n }\n\n return {children}\n}\n","import React, { useContext } from \"react\"\nimport { SlicesMapContext, SlicesResultsContext } from \"./context\"\n\nexport const InlineSlice = ({\n sliceName,\n allowEmpty,\n children,\n ...sliceProps\n}) => {\n const slicesMap = useContext(SlicesMapContext)\n const slicesResultsMap = useContext(SlicesResultsContext)\n const concreteSliceName = slicesMap[sliceName]\n const slice = slicesResultsMap.get(concreteSliceName)\n\n if (!slice) {\n if (allowEmpty) {\n return null\n } else {\n throw new Error(\n `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n )\n }\n }\n\n return (\n \n {children}\n \n )\n}\n","\"use client\"\n\nimport React, { useContext } from \"react\"\nimport { ServerSlice } from \"./slice/server-slice\"\nimport { InlineSlice } from \"./slice/inline-slice\"\nimport { SlicesContext } from \"./slice/context\"\n\nexport function Slice(props) {\n if (process.env.GATSBY_SLICES) {\n // we use sliceName internally, so remap alias to sliceName\n const internalProps = {\n ...props,\n sliceName: props.alias,\n }\n delete internalProps.alias\n delete internalProps.__renderedByLocation\n\n const slicesContext = useContext(SlicesContext)\n\n // validate props\n const propErrors = validateSliceProps(props)\n if (Object.keys(propErrors).length) {\n throw new SlicePropsError(\n slicesContext.renderEnvironment === `browser`,\n internalProps.sliceName,\n propErrors,\n props.__renderedByLocation\n )\n }\n\n if (slicesContext.renderEnvironment === `server`) {\n return \n } else if (slicesContext.renderEnvironment === `browser`) {\n // in the browser, we'll just render the component as is\n return \n } else if (\n slicesContext.renderEnvironment === `engines` ||\n slicesContext.renderEnvironment === `dev-ssr`\n ) {\n // if we're in SSR, we'll just render the component as is\n return \n } else if (slicesContext.renderEnvironment === `slices`) {\n // we are not yet supporting nested slices\n\n let additionalContextMessage = ``\n\n // just in case generating additional contextual information fails, we still want the base message to show\n // and not show another cryptic error message\n try {\n additionalContextMessage = `\\n\\nSlice component \"${slicesContext.sliceRoot.name}\" (${slicesContext.sliceRoot.componentPath}) tried to render `\n } catch {\n // don't need to handle it, we will just skip the additional context message if we fail to generate it\n }\n\n throw new Error(\n `Nested slices are not supported.${additionalContextMessage}\\n\\nSee https://gatsbyjs.com/docs/reference/built-in-components/gatsby-slice#nested-slices`\n )\n } else {\n throw new Error(\n `Slice context \"${slicesContext.renderEnvironment}\" is not supported.`\n )\n }\n } else {\n throw new Error(`Slices are disabled.`)\n }\n}\n\nclass SlicePropsError extends Error {\n constructor(inBrowser, sliceName, propErrors, renderedByLocation) {\n const errors = Object.entries(propErrors)\n .map(\n ([key, value]) =>\n `not serializable \"${value}\" type passed to \"${key}\" prop`\n )\n .join(`, `)\n\n const name = `SlicePropsError`\n let stack = ``\n let message = ``\n\n if (inBrowser) {\n // They're just (kinda) kidding, I promise... You can still work here <3\n // https://www.gatsbyjs.com/careers/\n const fullStack =\n React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactDebugCurrentFrame.getCurrentStack()\n\n // remove the first line of the stack trace\n const stackLines = fullStack.trim().split(`\\n`).slice(1)\n stackLines[0] = stackLines[0].trim()\n stack = `\\n` + stackLines.join(`\\n`)\n\n message = `Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n } else {\n // we can't really grab any extra info outside of the browser, so just print what we can\n message = `${name}: Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n const stackLines = new Error().stack.trim().split(`\\n`).slice(2)\n stack = `${message}\\n${stackLines.join(`\\n`)}`\n }\n\n super(message)\n this.name = name\n if (stack) {\n this.stack = stack\n } else {\n Error.captureStackTrace(this, SlicePropsError)\n }\n\n if (renderedByLocation) {\n this.forcedLocation = { ...renderedByLocation, functionName: `Slice` }\n }\n }\n}\n\nconst validateSliceProps = (\n props,\n errors = {},\n seenObjects = [],\n path = null\n) => {\n // recursively validate all props\n for (const [name, value] of Object.entries(props)) {\n if (\n value === undefined ||\n value === null ||\n (!path && name === `children`)\n ) {\n continue\n }\n\n const propPath = path ? `${path}.${name}` : name\n\n if (typeof value === `function`) {\n errors[propPath] = typeof value\n } else if (typeof value === `object` && seenObjects.indexOf(value) <= 0) {\n seenObjects.push(value)\n validateSliceProps(value, errors, seenObjects, propPath)\n }\n }\n\n return errors\n}\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport { default as PageRenderer } from \"./public-page-renderer\"\nexport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nexport {\n Link,\n withPrefix,\n withAssetPrefix,\n navigate,\n parsePath,\n} from \"gatsby-link\"\n\nexport { graphql, prefetchPathname }\nexport { StaticQuery, StaticQueryContext, useStaticQuery } from \"./static-query\"\nexport { Slice } from \"./slice\"\nexport * from \"gatsby-script\"\n","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import { createFromReadableStream } from \"react-server-dom-webpack\"\nimport prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = rawPath => {\n const [path, maybeSearch] = rawPath.split(`?`)\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json${\n maybeSearch ? `?${maybeSearch}` : ``\n }`\n}\n\n/**\n * Utility to check the path that goes into doFetch for e.g. potential malicious intentions.\n * It checks for \"//\" because with this you could do a fetch request to a different domain.\n */\nconst shouldAbortFetch = rawPath => rawPath.startsWith(`//`)\n\nfunction doFetch(url, method = `GET`) {\n return new Promise(resolve => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\n// Regex that matches common search crawlers\nconst BOT_REGEX = /bot|crawler|spider|crawling/i\n\nconst toPageResources = (pageData, component = null, head) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n getServerDataError: pageData.getServerDataError,\n slicesMap: pageData.slicesMap ?? {},\n }\n\n return {\n component,\n head,\n json: pageData.result,\n page,\n }\n}\n\nfunction waitForResponse(response) {\n return new Promise(resolve => {\n try {\n const result = response.readRoot()\n resolve(result)\n } catch (err) {\n if (\n Object.hasOwnProperty.call(err, `_response`) &&\n Object.hasOwnProperty.call(err, `_status`)\n ) {\n setTimeout(() => {\n waitForResponse(response).then(resolve)\n }, 200)\n } else {\n throw err\n }\n }\n })\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.partialHydrationDb = new Map()\n this.slicesDataDb = new Map()\n this.sliceInflightDb = new Map()\n this.slicesDb = new Map()\n this.isPrefetchQueueRunning = false\n this.prefetchQueued = []\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n const maybeSearch = pagePath.split(`?`)[1]\n if (maybeSearch && !jsonPayload.path.includes(maybeSearch)) {\n jsonPayload.path += `?${maybeSearch}`\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n fetchPartialHydrationJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath).replace(`.json`, `-rsc.json`)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: responseText,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.partialHydrationDb.has(pagePath)) {\n const pageData = this.partialHydrationDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPartialHydrationJson({ pagePath }).then(pageData => {\n this.partialHydrationDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadSliceDataJson(sliceName) {\n if (this.slicesDataDb.has(sliceName)) {\n const jsonPayload = this.slicesDataDb.get(sliceName)\n return Promise.resolve({ sliceName, jsonPayload })\n }\n\n const url = `${__PATH_PREFIX__}/slice-data/${sliceName}.json`\n return doFetch(url, `GET`).then(res => {\n const jsonPayload = JSON.parse(res.responseText)\n\n this.slicesDataDb.set(sliceName, jsonPayload)\n return { sliceName, jsonPayload }\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n if (page.error) {\n return Promise.resolve({\n error: page.error,\n status: page.status,\n })\n }\n\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const loadDataPromises = [\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]\n\n if (global.hasPartialHydration) {\n loadDataPromises.push(this.loadPartialHydrationJson(pagePath))\n }\n\n const inFlightPromise = Promise.all(loadDataPromises).then(allData => {\n const [appDataResponse, pageDataResponse, rscDataResponse] = allData\n\n if (\n pageDataResponse.status === PageResourceStatus.Error ||\n rscDataResponse?.status === PageResourceStatus.Error\n ) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = pageDataResponse.payload\n\n const {\n componentChunkName,\n staticQueryHashes: pageStaticQueryHashes = [],\n slicesMap = {},\n } = pageData\n\n const finalResult = {}\n\n const dedupedSliceNames = Array.from(new Set(Object.values(slicesMap)))\n\n const loadSlice = slice => {\n if (this.slicesDb.has(slice.name)) {\n return this.slicesDb.get(slice.name)\n } else if (this.sliceInflightDb.has(slice.name)) {\n return this.sliceInflightDb.get(slice.name)\n }\n\n const inFlight = this.loadComponent(slice.componentChunkName).then(\n component => {\n return {\n component: preferDefault(component),\n sliceContext: slice.result.sliceContext,\n data: slice.result.data,\n }\n }\n )\n\n this.sliceInflightDb.set(slice.name, inFlight)\n inFlight.then(results => {\n this.slicesDb.set(slice.name, results)\n this.sliceInflightDb.delete(slice.name)\n })\n\n return inFlight\n }\n\n return Promise.all(\n dedupedSliceNames.map(sliceName => this.loadSliceDataJson(sliceName))\n ).then(slicesData => {\n const slices = []\n const dedupedStaticQueryHashes = [...pageStaticQueryHashes]\n\n for (const { jsonPayload, sliceName } of Object.values(slicesData)) {\n slices.push({ name: sliceName, ...jsonPayload })\n for (const staticQueryHash of jsonPayload.staticQueryHashes) {\n if (!dedupedStaticQueryHashes.includes(staticQueryHash)) {\n dedupedStaticQueryHashes.push(staticQueryHash)\n }\n }\n }\n\n const loadChunkPromises = [\n Promise.all(slices.map(loadSlice)),\n this.loadComponent(componentChunkName, `head`),\n ]\n\n if (!global.hasPartialHydration) {\n loadChunkPromises.push(this.loadComponent(componentChunkName))\n }\n\n // In develop we have separate chunks for template and Head components\n // to enable HMR (fast refresh requires single exports).\n // In production we have shared chunk with both exports. Double loadComponent here\n // will be deduped by webpack runtime resulting in single request and single module\n // being loaded for both `component` and `head`.\n // get list of components to get\n const componentChunkPromises = Promise.all(loadChunkPromises).then(\n components => {\n const [sliceComponents, headComponent, pageComponent] = components\n\n finalResult.createdAt = new Date()\n\n for (const sliceComponent of sliceComponents) {\n if (!sliceComponent || sliceComponent instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = sliceComponent\n }\n }\n\n if (\n !global.hasPartialHydration &&\n (!pageComponent || pageComponent instanceof Error)\n ) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = pageComponent\n }\n\n let pageResources\n\n if (finalResult.status !== PageResourceStatus.Error) {\n finalResult.status = PageResourceStatus.Success\n if (\n pageDataResponse.notFound === true ||\n rscDataResponse?.notFound === true\n ) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: appDataResponse\n ? appDataResponse.webpackCompilationHash\n : ``,\n })\n\n if (typeof rscDataResponse?.payload === `string`) {\n pageResources = toPageResources(pageData, null, headComponent)\n\n pageResources.partialHydration = rscDataResponse.payload\n\n const readableStream = new ReadableStream({\n start(controller) {\n const te = new TextEncoder()\n controller.enqueue(te.encode(rscDataResponse.payload))\n },\n pull(controller) {\n // close on next read when queue is empty\n controller.close()\n },\n cancel() {},\n })\n\n return waitForResponse(\n createFromReadableStream(readableStream)\n ).then(result => {\n pageResources.partialHydration = result\n\n return pageResources\n })\n } else {\n pageResources = toPageResources(\n pageData,\n pageComponent,\n headComponent\n )\n }\n }\n\n // undefined if final result is an error\n return pageResources\n }\n )\n\n // get list of static queries to get\n const staticQueryBatchPromise = Promise.all(\n dedupedStaticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromises, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n })\n\n inFlightPromise\n .then(() => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if the page does not exists in cache\n loadPageSync(rawPath, options = {}) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath)\n\n if (pageData.payload) {\n return pageData.payload\n }\n\n if (options?.withErrorDetails) {\n return {\n error: pageData.error,\n status: pageData.status,\n }\n }\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Don't prefetch if this is a crawler bot\n if (navigator.userAgent && BOT_REGEX.test(navigator.userAgent)) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return {\n then: resolve => resolve(false),\n abort: () => {},\n }\n }\n if (this.prefetchTriggered.has(pagePath)) {\n return {\n then: resolve => resolve(true),\n abort: () => {},\n }\n }\n\n const defer = {\n resolve: null,\n reject: null,\n promise: null,\n }\n defer.promise = new Promise((resolve, reject) => {\n defer.resolve = resolve\n defer.reject = reject\n })\n this.prefetchQueued.push([pagePath, defer])\n const abortC = new AbortController()\n abortC.signal.addEventListener(`abort`, () => {\n const index = this.prefetchQueued.findIndex(([p]) => p === pagePath)\n // remove from the queue\n if (index !== -1) {\n this.prefetchQueued.splice(index, 1)\n }\n })\n\n if (!this.isPrefetchQueueRunning) {\n this.isPrefetchQueueRunning = true\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n }\n\n return {\n then: (resolve, reject) => defer.promise.then(resolve, reject),\n abort: abortC.abort.bind(abortC),\n }\n }\n\n _processNextPrefetchBatch() {\n const idleCallback = window.requestIdleCallback || (cb => setTimeout(cb, 0))\n\n idleCallback(() => {\n const toPrefetch = this.prefetchQueued.splice(0, 4)\n const prefetches = Promise.all(\n toPrefetch.map(([pagePath, dPromise]) => {\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return dPromise.resolve(false)\n }\n\n return this.doPrefetch(findPath(pagePath)).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n\n dPromise.resolve(true)\n })\n })\n )\n\n if (this.prefetchQueued.length) {\n prefetches.then(() => {\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n })\n } else {\n this.isPrefetchQueueRunning = false\n }\n })\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n\n if (global.hasPartialHydration) {\n return Promise.all([\n prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n ),\n prefetchHelper(pageDataUrl.replace(`.json`, `-rsc.json`), {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPartialHydrationJson(pagePath)\n ),\n ])\n } else {\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths, pageData) {\n const loadComponent = (chunkName, exportType = `components`) => {\n if (!global.hasPartialHydration) {\n exportType = `components`\n }\n\n if (!asyncRequires[exportType][chunkName]) {\n throw new Error(\n `We couldn't find the correct component chunk with the name \"${chunkName}\"`\n )\n }\n\n return (\n asyncRequires[exportType][chunkName]()\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n\n if (pageData) {\n this.pageDataDb.set(findPath(pageData.path), {\n pagePath: pageData.path,\n payload: pageData,\n status: `success`,\n })\n }\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n if (shouldAbortFetch(rawPath)) {\n return data\n }\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n return super.loadPartialHydrationJson(rawPath).then(data => {\n if (data.notFound) {\n if (shouldAbortFetch(rawPath)) {\n return data\n }\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n loadPageSync: (rawPath, options = {}) =>\n instance.loadPageSync(rawPath, options),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n\nexport function getSliceResults() {\n if (instance) {\n return instance.slicesDb\n } else {\n return {}\n }\n}\n","import { useEffect } from \"react\"\n\n/*\n * Calls callback in an effect and renders children\n */\nexport function FireCallbackInEffect({ children, callback }) {\n useEffect(() => {\n callback()\n })\n\n return children\n}\n","export const VALID_NODE_NAMES = [\n `link`,\n `meta`,\n `style`,\n `title`,\n `base`,\n `noscript`,\n `script`,\n `html`,\n `body`,\n]\n","import { VALID_NODE_NAMES } from \"./constants\"\n\n/**\n * Filter the props coming from a page down to just the ones that are relevant for head.\n * This e.g. filters out properties that are undefined during SSR.\n */\nexport function filterHeadProps(input) {\n return {\n location: {\n pathname: input.location.pathname,\n },\n params: input.params,\n data: input.data || {},\n serverData: input.serverData,\n pageContext: input.pageContext,\n }\n}\n\n/**\n * Throw error if Head export is not a valid function\n */\nexport function headExportValidator(head) {\n if (typeof head !== `function`)\n throw new Error(\n `Expected \"Head\" export to be a function got \"${typeof head}\".`\n )\n}\n\n/**\n * Warn once for same messsage\n */\nlet warnOnce = _ => {}\nif (process.env.NODE_ENV !== `production`) {\n const warnings = new Set()\n warnOnce = msg => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\n/**\n * Warn for invalid tags in Head which may have been directly added or introduced by `wrapRootElement`\n * @param {string} tagName\n */\nexport function warnForInvalidTag(tagName) {\n if (process.env.NODE_ENV !== `production`) {\n const warning = createWarningForInvalidTag(tagName)\n warnOnce(warning)\n }\n}\n\nfunction createWarningForInvalidTag(tagName) {\n return `<${tagName}> is not a valid head element. Please use one of the following: ${VALID_NODE_NAMES.join(\n `, `\n )}.\\n\\nAlso make sure that wrapRootElement in gatsby-ssr/gatsby-browser doesn't contain UI elements: https://gatsby.dev/invalid-head-elements`\n}\n\n/**\n * When a `nonce` is present on an element, browsers such as Chrome and Firefox strip it out of the\n * actual HTML attributes for security reasons *when the element is added to the document*. Thus,\n * given two equivalent elements that have nonces, `Element,isEqualNode()` will return false if one\n * of those elements gets added to the document. Although the `element.nonce` property will be the\n * same for both elements, the one that was added to the document will return an empty string for\n * its nonce HTML attribute value.\n *\n * This custom `isEqualNode()` function therefore removes the nonce value from the `newTag` before\n * comparing it to `oldTag`, restoring it afterwards.\n *\n * For more information, see:\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1211471#c12\n */\nexport function isEqualNode(oldTag, newTag) {\n if (oldTag instanceof HTMLElement && newTag instanceof HTMLElement) {\n const nonce = newTag.getAttribute(`nonce`)\n // Only strip the nonce if `oldTag` has had it stripped. An element's nonce attribute will not\n // be stripped if there is no content security policy response header that includes a nonce.\n if (nonce && !oldTag.getAttribute(`nonce`)) {\n const cloneTag = newTag.cloneNode(true)\n cloneTag.setAttribute(`nonce`, ``)\n cloneTag.nonce = nonce\n return nonce === oldTag.nonce && oldTag.isEqualNode(cloneTag)\n }\n }\n\n return oldTag.isEqualNode(newTag)\n}\n\nexport function diffNodes({ oldNodes, newNodes, onStale, onNew }) {\n for (const existingHeadElement of oldNodes) {\n const indexInNewNodes = newNodes.findIndex(e =>\n isEqualNode(e, existingHeadElement)\n )\n\n if (indexInNewNodes === -1) {\n onStale(existingHeadElement)\n } else {\n // this node is re-created as-is, so we keep old node, and remove it from list of new nodes (as we handled it already here)\n newNodes.splice(indexInNewNodes, 1)\n }\n }\n\n // remaing new nodes didn't have matching old node, so need to be added\n for (const newNode of newNodes) {\n onNew(newNode)\n }\n}\n\nexport function getValidHeadNodesAndAttributes(\n rootNode,\n htmlAndBodyAttributes = {\n html: {},\n body: {},\n }\n) {\n const seenIds = new Map()\n const validHeadNodes = []\n\n // Filter out non-element nodes before looping since we don't care about them\n for (const node of rootNode.childNodes) {\n const nodeName = node.nodeName.toLowerCase()\n const id = node.attributes?.id?.value\n\n if (!isElementType(node)) continue\n\n if (isValidNodeName(nodeName)) {\n // and tags are treated differently, in that we don't render them, we only extract the attributes and apply them separetely\n if (nodeName === `html` || nodeName === `body`) {\n for (const attribute of node.attributes) {\n const isStyleAttribute = attribute.name === `style`\n\n // Merge attributes for same nodeName from previous loop iteration\n htmlAndBodyAttributes[nodeName] = {\n ...htmlAndBodyAttributes[nodeName],\n }\n\n if (!isStyleAttribute) {\n htmlAndBodyAttributes[nodeName][attribute.name] = attribute.value\n }\n\n // If there is already a style attribute, we need to merge them as otherwise the last one will \"win\"\n if (isStyleAttribute) {\n htmlAndBodyAttributes[nodeName].style = `${\n htmlAndBodyAttributes[nodeName]?.style\n ? htmlAndBodyAttributes[nodeName].style\n : ``\n }${attribute.value} `\n }\n }\n } else {\n let clonedNode = node.cloneNode(true)\n clonedNode.setAttribute(`data-gatsby-head`, true)\n\n // // This is hack to make script tags work\n if (clonedNode.nodeName.toLowerCase() === `script`) {\n clonedNode = massageScript(clonedNode)\n }\n // Duplicate ids are not allowed in the head, so we need to dedupe them\n if (id) {\n if (!seenIds.has(id)) {\n validHeadNodes.push(clonedNode)\n seenIds.set(id, validHeadNodes.length - 1)\n } else {\n const indexOfPreviouslyInsertedNode = seenIds.get(id)\n validHeadNodes[\n indexOfPreviouslyInsertedNode\n ].parentNode?.removeChild(\n validHeadNodes[indexOfPreviouslyInsertedNode]\n )\n validHeadNodes[indexOfPreviouslyInsertedNode] = clonedNode\n }\n } else {\n validHeadNodes.push(clonedNode)\n }\n }\n } else {\n warnForInvalidTag(nodeName)\n }\n\n if (node.childNodes.length) {\n validHeadNodes.push(\n ...getValidHeadNodesAndAttributes(node, htmlAndBodyAttributes)\n .validHeadNodes\n )\n }\n }\n\n return { validHeadNodes, htmlAndBodyAttributes }\n}\n\nfunction massageScript(node) {\n const script = document.createElement(`script`)\n for (const attr of node.attributes) {\n script.setAttribute(attr.name, attr.value)\n }\n script.innerHTML = node.innerHTML\n\n return script\n}\n\nexport function isValidNodeName(nodeName) {\n return VALID_NODE_NAMES.includes(nodeName)\n}\n/*\n * For Head, we only care about element nodes(type = 1), so this util is used to skip over non-element nodes\n * For Node type, see https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n */\nexport function isElementType(node) {\n return node.nodeType === 1\n}\n\n/**\n * Removes all the head elements that were added by `Head`\n */\nexport function removePrevHeadElements() {\n const prevHeadNodes = document.querySelectorAll(`[data-gatsby-head]`)\n for (const node of prevHeadNodes) {\n node.parentNode.removeChild(node)\n }\n}\n\nexport function applyHtmlAndBodyAttributes(htmlAndBodyAttributes) {\n if (!htmlAndBodyAttributes) return\n\n const { html, body } = htmlAndBodyAttributes\n\n const htmlElement = document.querySelector(`html`)\n if (htmlElement) {\n Object.entries(html).forEach(([attributeName, attributeValue]) => {\n htmlElement.setAttribute(attributeName, attributeValue)\n })\n }\n\n const bodyElement = document.querySelector(`body`)\n if (bodyElement) {\n Object.entries(body).forEach(([attributeName, attributeValue]) => {\n bodyElement.setAttribute(attributeName, attributeValue)\n })\n }\n}\n\nexport function removeHtmlAndBodyAttributes(htmlAndBodyattributeList) {\n if (!htmlAndBodyattributeList) return\n\n const { html, body } = htmlAndBodyattributeList\n\n if (html) {\n const htmlElement = document.querySelector(`html`)\n html.forEach(attributeName => {\n if (htmlElement) {\n htmlElement.removeAttribute(attributeName)\n }\n })\n }\n\n if (body) {\n const bodyElement = document.querySelector(`body`)\n body.forEach(attributeName => {\n if (bodyElement) {\n bodyElement.removeAttribute(attributeName)\n }\n })\n }\n}\n","import React from \"react\"\nimport { useEffect } from \"react\"\nimport { StaticQueryContext } from \"gatsby\"\nimport { LocationProvider } from \"@gatsbyjs/reach-router\"\nimport { reactDOMUtils } from \"../react-dom-utils\"\nimport { FireCallbackInEffect } from \"./components/fire-callback-in-effect\"\nimport {\n headExportValidator,\n filterHeadProps,\n diffNodes,\n getValidHeadNodesAndAttributes,\n removePrevHeadElements,\n applyHtmlAndBodyAttributes,\n removeHtmlAndBodyAttributes,\n} from \"./utils\"\nimport { apiRunner } from \"../api-runner-browser\"\n\nconst hiddenRoot = document.createElement(`div`)\nconst keysOfHtmlAndBodyAttributes = {\n html: [],\n body: [],\n}\n\nconst onHeadRendered = () => {\n const { validHeadNodes, htmlAndBodyAttributes } =\n getValidHeadNodesAndAttributes(hiddenRoot)\n\n keysOfHtmlAndBodyAttributes.html = Object.keys(htmlAndBodyAttributes.html)\n keysOfHtmlAndBodyAttributes.body = Object.keys(htmlAndBodyAttributes.body)\n\n applyHtmlAndBodyAttributes(htmlAndBodyAttributes)\n\n /**\n * The rest of the code block below is a diffing mechanism to ensure that\n * the head elements aren't duplicted on every re-render.\n */\n const existingHeadElements = document.querySelectorAll(`[data-gatsby-head]`)\n\n if (existingHeadElements.length === 0) {\n document.head.append(...validHeadNodes)\n return\n }\n\n const newHeadNodes = []\n diffNodes({\n oldNodes: existingHeadElements,\n newNodes: validHeadNodes,\n onStale: node => node.parentNode.removeChild(node),\n onNew: node => newHeadNodes.push(node),\n })\n\n document.head.append(...newHeadNodes)\n}\n\nif (process.env.BUILD_STAGE === `develop`) {\n // sigh ... and elements are not valid descedents of
(our hidden element)\n // react-dom in dev mode will warn about this. There doesn't seem to be a way to render arbitrary\n // user Head without hitting this issue (our hidden element could be just \"new Document()\", but\n // this can only have 1 child, and we don't control what is being rendered so that's not an option)\n // instead we continue to render to
, and just silence warnings for and elements\n // https://github.com/facebook/react/blob/e2424f33b3ad727321fc12e75c5e94838e84c2b5/packages/react-dom-bindings/src/client/validateDOMNesting.js#L498-L520\n const originalConsoleError = console.error.bind(console)\n console.error = (...args) => {\n if (\n Array.isArray(args) &&\n args.length >= 2 &&\n args[0]?.includes?.(`validateDOMNesting(...): %s cannot appear as`) &&\n (args[1] === `` || args[1] === ``)\n ) {\n return undefined\n }\n return originalConsoleError(...args)\n }\n\n /* We set up observer to be able to regenerate after react-refresh\n updates our hidden element.\n */\n const observer = new MutationObserver(onHeadRendered)\n observer.observe(hiddenRoot, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n })\n}\n\nexport function headHandlerForBrowser({\n pageComponent,\n staticQueryResults,\n pageComponentProps,\n}) {\n useEffect(() => {\n if (pageComponent?.Head) {\n headExportValidator(pageComponent.Head)\n\n const { render } = reactDOMUtils()\n\n const HeadElement = (\n \n )\n\n const WrapHeadElement = apiRunner(\n `wrapRootElement`,\n { element: HeadElement },\n HeadElement,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n render(\n // just a hack to call the callback after react has done first render\n // Note: In dev, we call onHeadRendered twice( in FireCallbackInEffect and after mutualution observer dectects initail render into hiddenRoot) this is for hot reloading\n // In Prod we only call onHeadRendered in FireCallbackInEffect to render to head\n \n \n {WrapHeadElement}\n \n ,\n hiddenRoot\n )\n }\n\n return () => {\n removePrevHeadElements()\n removeHtmlAndBodyAttributes(keysOfHtmlAndBodyAttributes)\n }\n })\n}\n","import React, { Suspense, createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\nimport { headHandlerForBrowser } from \"./head/head-export-handler-for-browser\"\n\n// Renders page\nfunction PageRenderer(props) {\n const pageComponentProps = {\n ...props,\n params: {\n ...grabMatchParams(props.location.pathname),\n ...props.pageResources.json.pageContext.__params,\n },\n }\n\n const preferDefault = m => (m && m.default) || m\n\n let pageElement\n if (props.pageResources.partialHydration) {\n pageElement = props.pageResources.partialHydration\n } else {\n pageElement = createElement(preferDefault(props.pageResources.component), {\n ...pageComponentProps,\n key: props.path || props.pageResources.page.path,\n })\n }\n\n const pageComponent = props.pageResources.head\n\n headHandlerForBrowser({\n pageComponent,\n staticQueryResults: props.pageResources.staticQueryResults,\n pageComponentProps,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n {\n element: pageElement,\n props: pageComponentProps,\n },\n pageElement,\n ({ result }) => {\n return { element: result, props: pageComponentProps }\n }\n ).pop()\n\n return wrappedPage\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport {\n navigate as reachNavigate,\n globalHistory,\n} from \"@gatsbyjs/reach-router\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n const redirect = maybeGetBrowserRedirect(pathname)\n const { hash, search } = window.location\n\n if (redirect != null) {\n window.___replace(redirect.toPath + search + hash)\n return true\n } else {\n return false\n }\n}\n\n// Catch unhandled chunk loading errors and force a restart of the app.\nlet nextRoute = ``\n\nwindow.addEventListener(`unhandledrejection`, event => {\n if (/loading chunk \\d* failed./i.test(event.reason)) {\n if (nextRoute) {\n window.location.pathname = nextRoute\n }\n }\n})\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n nextRoute = location.pathname\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n const { pathname, search, hash } = parsePath(to)\n const redirect = maybeGetBrowserRedirect(pathname)\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath + search + hash\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname + search + hash\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname + search).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname + search + hash\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return
\n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(nextProps) {\n if (compareLocationProps(this.props.location, nextProps.location)) {\n onPreRouteUpdate(nextProps.location, this.props.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname + location.search, {\n withErrorDetails: true,\n }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(\n location.pathname + location.search,\n {\n withErrorDetails: true,\n }\n )\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport { StaticQueryContext } from \"./static-query\"\nimport {\n SlicesMapContext,\n SlicesContext,\n SlicesResultsContext,\n} from \"./slice/context\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n getSliceResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\nimport { reactDOMUtils } from \"./react-dom-utils\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths, window.pageData)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nconst { render, hydrate } = reactDOMUtils()\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\nconst reloadStorageKey = `gatsby-reload-compilation-hash-match`\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n const slicesContext = {\n renderEnvironment: `browser`,\n }\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n const sliceResults = getSliceResults()\n\n return (\n \n \n \n \n \n {children}\n \n \n \n \n \n )\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n \n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). SSR\n // page paths might include search params, while SSG and DSG won't.\n // If page path include search params we also compare query params.\n // But only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !==\n browserLoc.pathname + (pagePath.includes(`?`) ? browserLoc.search : ``) &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath.match(/^\\/(404|500)(\\/?|.html)$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(\n __BASE_PATH__ +\n pagePath +\n (!pagePath.includes(`?`) ? browserLoc.search : ``) +\n browserLoc.hash,\n {\n replace: true,\n }\n )\n }\n\n // It's possible that sessionStorage can throw an exception if access is not granted, see https://github.com/gatsbyjs/gatsby/issues/34512\n const getSessionStorage = () => {\n try {\n return sessionStorage\n } catch {\n return null\n }\n }\n\n publicLoader.loadPage(browserLoc.pathname + browserLoc.search).then(page => {\n const sessionStorage = getSessionStorage()\n\n if (\n page?.page?.webpackCompilationHash &&\n page.page.webpackCompilationHash !== window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n // We have not matching html + js (inlined `window.___webpackCompilationHash`)\n // with our data (coming from `app-data.json` file). This can cause issues such as\n // errors trying to load static queries (as list of static queries is inside `page-data`\n // which might not match to currently loaded `.js` scripts).\n // We are making attempt to reload if hashes don't match, but we also have to handle case\n // when reload doesn't fix it (possibly broken deploy) so we don't end up in infinite reload loop\n if (sessionStorage) {\n const isReloaded = sessionStorage.getItem(reloadStorageKey) === `1`\n\n if (!isReloaded) {\n sessionStorage.setItem(reloadStorageKey, `1`)\n window.location.reload(true)\n return\n }\n }\n }\n\n if (sessionStorage) {\n sessionStorage.removeItem(reloadStorageKey)\n }\n\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = function App() {\n const onClientEntryRanRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!onClientEntryRanRef.current) {\n onClientEntryRanRef.current = true\n if (performance.mark) {\n performance.mark(`onInitialClientRender`)\n }\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return {SiteRoot}\n }\n\n const focusEl = document.getElementById(`gatsby-focus-wrapper`)\n\n // Client only pages have any empty body so we just do a normal\n // render to avoid React complaining about hydration mis-matches.\n let defaultRenderer = render\n if (focusEl && focusEl.children.length) {\n defaultRenderer = hydrate\n }\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n defaultRenderer\n )[0]\n\n function runRender() {\n const rootElement =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n renderer(, rootElement)\n }\n\n // https://github.com/madrobby/zepto/blob/b5ed8d607f67724788ec9ff492be297f64d47dfc/src/zepto.js#L439-L450\n // TODO remove IE 10 support\n const doc = document\n if (\n doc.readyState === `complete` ||\n (doc.readyState !== `loading` && !doc.documentElement.doScroll)\n ) {\n setTimeout(function () {\n runRender()\n }, 0)\n } else {\n const handler = function () {\n doc.removeEventListener(`DOMContentLoaded`, handler, false)\n window.removeEventListener(`load`, handler, false)\n\n runRender()\n }\n\n doc.addEventListener(`DOMContentLoaded`, handler, false)\n window.addEventListener(`load`, handler, false)\n }\n\n return\n })\n})\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","const map = new WeakMap()\n\nexport function reactDOMUtils() {\n const reactDomClient = require(`react-dom/client`)\n\n const render = (Component, el) => {\n let root = map.get(el)\n if (!root) {\n map.set(el, (root = reactDomClient.createRoot(el)))\n }\n root.render(Component)\n }\n\n const hydrate = (Component, el) => reactDomClient.hydrateRoot(el, Component)\n\n return { render, hydrate }\n}\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n return redirect\n}\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","import React from \"react\"\n\nconst SlicesResultsContext = React.createContext({})\nconst SlicesContext = React.createContext({})\nconst SlicesMapContext = React.createContext({})\nconst SlicesPropsContext = React.createContext({})\n\nexport {\n SlicesResultsContext,\n SlicesContext,\n SlicesMapContext,\n SlicesPropsContext,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { createServerOrClientContext } from \"./context-utils\"\n\nconst StaticQueryContext = createServerOrClientContext(`StaticQuery`, {})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n
\n )\n}\n\nlet warnedAboutStaticQuery = false\n\n// TODO(v6): Remove completely\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n if (process.env.NODE_ENV === `development` && !warnedAboutStaticQuery) {\n console.warn(\n `The component is deprecated and will be removed in Gatsby v6. Use useStaticQuery instead. Refer to the migration guide for more information: https://gatsby.dev/migrating-4-to-5/#staticquery--is-deprecated`\n )\n warnedAboutStaticQuery = true\n }\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n // TODO(v5): Remove since we require React >= 18\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nexport { StaticQuery, StaticQueryContext, useStaticQuery }\n","import React from \"react\"\n\n// Ensure serverContext is not created more than once as React will throw when creating it more than once\n// https://github.com/facebook/react/blob/dd2d6522754f52c70d02c51db25eb7cbd5d1c8eb/packages/react/src/ReactServerContext.js#L101\nconst createServerContext = (name, defaultValue = null) => {\n /* eslint-disable no-undef */\n if (!globalThis.__SERVER_CONTEXT) {\n globalThis.__SERVER_CONTEXT = {}\n }\n\n if (!globalThis.__SERVER_CONTEXT[name]) {\n globalThis.__SERVER_CONTEXT[name] = React.createServerContext(\n name,\n defaultValue\n )\n }\n\n return globalThis.__SERVER_CONTEXT[name]\n}\n\nfunction createServerOrClientContext(name, defaultValue) {\n if (React.createServerContext) {\n return createServerContext(name, defaultValue)\n }\n\n return React.createContext(defaultValue)\n}\n\nexport { createServerOrClientContext }\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","\"use strict\";\n\nexports.onRouteUpdate = function (_ref, pluginOptions) {\n var location = _ref.location;\n if (pluginOptions === void 0) {\n pluginOptions = {};\n }\n if (process.env.NODE_ENV !== \"production\" || typeof gtag !== \"function\") {\n return null;\n }\n var pluginConfig = pluginOptions.pluginConfig || {};\n var pathIsExcluded = location && typeof window.excludeGtagPaths !== \"undefined\" && window.excludeGtagPaths.some(function (rx) {\n return rx.test(location.pathname);\n });\n if (pathIsExcluded) return null;\n\n // wrap inside a timeout to make sure react-helmet is done with its changes (https://github.com/gatsbyjs/gatsby/issues/11592)\n var sendPageView = function sendPageView() {\n var pagePath = location ? location.pathname + location.search + location.hash : undefined;\n window.gtag(\"event\", \"page_view\", {\n page_path: pagePath\n });\n };\n var _pluginConfig$delayOn = pluginConfig.delayOnRouteUpdate,\n delayOnRouteUpdate = _pluginConfig$delayOn === void 0 ? 0 : _pluginConfig$delayOn;\n if (\"requestAnimationFrame\" in window) {\n requestAnimationFrame(function () {\n requestAnimationFrame(function () {\n return setTimeout(sendPageView, delayOnRouteUpdate);\n });\n });\n } else {\n // Delay by 32ms to simulate 2 requestOnAnimationFrame calls\n setTimeout(sendPageView, 32 + delayOnRouteUpdate);\n }\n return null;\n};","/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\nimport { withPrefix } from \"gatsby\";\nimport getManifestForPathname from \"./get-manifest-pathname\";\n\n// when we don't have localisation in our manifest, we tree shake everything away\nexport const onRouteUpdate = function onRouteUpdate({\n location\n}, pluginOptions) {\n if (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n const {\n localize\n } = pluginOptions;\n const manifestFilename = getManifestForPathname(location.pathname, localize, true);\n const manifestEl = document.head.querySelector(`link[rel=\"manifest\"]`);\n if (manifestEl) {\n manifestEl.setAttribute(`href`, withPrefix(manifestFilename));\n }\n }\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _gatsby = require(\"gatsby\");\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @param {boolean} shouldPrependPathPrefix\n * @return string\n */\nvar _default = (pathname, localizedManifests, shouldPrependPathPrefix = false) => {\n const defaultFilename = `manifest.webmanifest`;\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n const localizedManifest = localizedManifests.find(app => {\n let startUrl = app.start_url;\n if (shouldPrependPathPrefix) {\n startUrl = (0, _gatsby.withPrefix)(startUrl);\n }\n return pathname.startsWith(startUrl);\n });\n if (!localizedManifest) {\n return defaultFilename;\n }\n return `manifest_${localizedManifest.lang}.webmanifest`;\n};\nexports.default = _default;","\"use strict\";\n\nexports.onRouteUpdate = function (_ref) {\n var location = _ref.location;\n\n if (process.env.NODE_ENV === \"production\" && typeof ym === \"function\") {\n if (location && typeof window.ym !== \"undefined\" && typeof window.ym.hit === \"function\") {\n return;\n } // wrap inside a timeout to make sure react-helmet is done with it's changes (https://github.com/gatsbyjs/gatsby/issues/9139)\n // reactHelmet is using requestAnimationFrame so we should use it too: https://github.com/nfl/react-helmet/blob/5.2.0/src/HelmetUtils.js#L296-L299\n\n\n var sendPageView = function sendPageView() {\n window.ym.hit(location ? location.pathname + location.search + location.hash : undefined);\n };\n\n if (\"requestAnimationFrame\" in window) {\n requestAnimationFrame(function () {\n requestAnimationFrame(sendPageView);\n });\n } else {\n // simulate 2 rAF calls\n setTimeout(sendPageView, 32);\n }\n }\n};","\"use strict\";\n\nexports.DEFAULT_OPTIONS = {\n maxWidth: 650,\n wrapperStyle: \"\",\n backgroundColor: \"white\",\n linkImagesToOriginal: true,\n showCaptions: false,\n markdownCaptions: false,\n withWebp: false,\n withAvif: false,\n tracedSVG: false,\n loading: \"lazy\",\n decoding: \"async\",\n disableBgImageOnAlpha: false,\n disableBgImage: false\n};\nexports.EMPTY_ALT = \"GATSBY_EMPTY_ALT\";\nexports.imageClass = \"gatsby-resp-image-image\";\nexports.imageWrapperClass = \"gatsby-resp-image-wrapper\";\nexports.imageBackgroundClass = \"gatsby-resp-image-background-image\";","\"use strict\";\n\nvar _require = require(\"./constants\"),\n DEFAULT_OPTIONS = _require.DEFAULT_OPTIONS,\n imageClass = _require.imageClass,\n imageBackgroundClass = _require.imageBackgroundClass,\n imageWrapperClass = _require.imageWrapperClass;\nexports.onRouteUpdate = function (apiCallbackContext, pluginOptions) {\n var options = Object.assign({}, DEFAULT_OPTIONS, pluginOptions);\n var imageWrappers = document.querySelectorAll(\".\" + imageWrapperClass);\n\n // https://css-tricks.com/snippets/javascript/loop-queryselectorall-matches/\n // for cross-browser looping through NodeList without polyfills\n var _loop = function _loop() {\n var imageWrapper = imageWrappers[i];\n var backgroundElement = imageWrapper.querySelector(\".\" + imageBackgroundClass);\n var imageElement = imageWrapper.querySelector(\".\" + imageClass);\n var onImageLoad = function onImageLoad() {\n backgroundElement.style.transition = \"opacity 0.5s 0.5s\";\n imageElement.style.transition = \"opacity 0.5s\";\n onImageComplete();\n };\n var onImageComplete = function onImageComplete() {\n backgroundElement.style.opacity = 0;\n imageElement.style.opacity = 1;\n imageElement.style.color = \"inherit\";\n imageElement.style.boxShadow = \"inset 0px 0px 0px 400px \" + options.backgroundColor;\n imageElement.removeEventListener(\"load\", onImageLoad);\n imageElement.removeEventListener(\"error\", onImageComplete);\n };\n imageElement.style.opacity = 0;\n imageElement.addEventListener(\"load\", onImageLoad);\n imageElement.addEventListener(\"error\", onImageComplete);\n if (imageElement.complete) {\n onImageComplete();\n }\n };\n for (var i = 0; i < imageWrappers.length; i++) {\n _loop();\n }\n};","const consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.init(concreteLogger, options);\n }\n init(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n if (!this.observers[event]) this.observers[event] = new Map();\n const numListeners = this.observers[event].get(listener) || 0;\n this.observers[event].set(listener, numListeners + 1);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event].delete(listener);\n }\n emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(_ref => {\n let [observer, numTimesAdded] = _ref;\n for (let i = 0; i < numTimesAdded; i++) {\n observer(...args);\n }\n });\n }\n if (this.observers['*']) {\n const cloned = Array.from(this.observers['*'].entries());\n cloned.forEach(_ref2 => {\n let [observer, numTimesAdded] = _ref2;\n for (let i = 0; i < numTimesAdded; i++) {\n observer.apply(observer, [event, ...args]);\n }\n });\n }\n }\n}\n\nfunction defer() {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n}\nconst lastOfPathSeparatorRegExp = /###/g;\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\n }\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n const stack = typeof path !== 'string' ? path : path.split('.');\n let stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper()) return {};\n const key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n}\nfunction setPath(object, path, newValue) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n let e = path[path.length - 1];\n let p = path.slice(0, path.length - 1);\n let last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = `${p[p.length - 1]}.${e}`;\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last && last.obj && typeof last.obj[`${last.k}.${e}`] !== 'undefined') {\n last.obj = undefined;\n }\n }\n last.obj[`${last.k}.${e}`] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n}\nclass RegExpCache {\n constructor(capacity) {\n this.capacity = capacity;\n this.regExpMap = new Map();\n this.regExpQueue = [];\n }\n getRegExp(pattern) {\n const regExpFromCache = this.regExpMap.get(pattern);\n if (regExpFromCache !== undefined) {\n return regExpFromCache;\n }\n const regExpNew = new RegExp(pattern);\n if (this.regExpQueue.length === this.capacity) {\n this.regExpMap.delete(this.regExpQueue.shift());\n }\n this.regExpMap.set(pattern, regExpNew);\n this.regExpQueue.push(pattern);\n return regExpNew;\n }\n}\nconst chars = [' ', ',', '?', '!', ';'];\nconst looksLikeObjectPathRegExpCache = new RegExpCache(20);\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n}\nfunction deepFind(obj, path) {\n let keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n const tokens = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < tokens.length;) {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n let next;\n let nextPath = '';\n for (let j = i; j < tokens.length; ++j) {\n if (j !== i) {\n nextPath += keySeparator;\n }\n nextPath += tokens[j];\n next = current[nextPath];\n if (next !== undefined) {\n if (['string', 'number', 'boolean'].indexOf(typeof next) > -1 && j < tokens.length - 1) {\n continue;\n }\n i += j - i + 1;\n break;\n }\n }\n current = next;\n }\n return current;\n}\nfunction getCleanedCode(code) {\n if (code && code.indexOf('_') > 0) return code.replace('_', '-');\n return code;\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path;\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n } else {\n path = [lng, ns];\n if (key) {\n if (Array.isArray(key)) {\n path.push(...key);\n } else if (typeof key === 'string' && keySeparator) {\n path.push(...key.split(keySeparator));\n } else {\n path.push(key);\n }\n }\n }\n const result = getPath(this.data, path);\n if (!result && !ns && !key && lng.indexOf('.') > -1) {\n lng = path[0];\n ns = path[1];\n key = path.slice(2).join('.');\n }\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n addResource(lng, ns, key, value) {\n let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n for (const m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false,\n skipCopy: false\n };\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return {\n ...{},\n ...this.getResource(lng, ns)\n };\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n if (this.processors[processor]) value = this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nconst checkedLoadedFor = {};\nclass Translator extends EventEmitter {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key === undefined || key === null) {\n return false;\n }\n const resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n extractFromKey(key, options) {\n let nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let namespaces = options.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key,\n namespaces\n };\n }\n translate(keys, options, lastKey) {\n if (typeof options !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof options === 'object') options = {\n ...options\n };\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], options);\n const namespace = namespaces[namespaces.length - 1];\n const lng = options.lng || this.language;\n const appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n const nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, options);\n let res = resolved && resolved.res;\n const resUsedKey = resolved && resolved.usedKey || key;\n const resExactUsedKey = resolved && resolved.exactUsedKey || key;\n const resType = Object.prototype.toString.apply(res);\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, {\n ...options,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = resType === '[object Array]';\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n copy[m] = this.translate(deepKey, {\n ...options,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const hasDefaultValue = Translator.hasDefaultValue(options);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n const defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const defaultValue = needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] || options[`defaultValue${defaultValueSuffix}`] || options[`defaultValue${defaultValueSuffixOrdinalFallback}`] || options.defaultValue;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...options,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (this.backendConnector && this.backendConnector.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n const suffixes = this.pluralResolver.getSuffixes(language, options);\n if (needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] && suffixes.indexOf(`${this.options.pluralSeparator}zero`) < 0) {\n suffixes.push(`${this.options.pluralSeparator}zero`);\n }\n suffixes.forEach(suffix => {\n send([language], key + suffix, options[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = `${namespace}:${key}`;\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}:${key}` : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, options, resolved, lastKey) {\n var _this = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...options\n }, options.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init({\n ...options,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...options.interpolation\n }\n }\n });\n const skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = resolved.usedLng;\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return _this.translate(...args, key);\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n const postProcess = options.postProcess || this.options.postProcess;\n const postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(options)\n },\n ...options\n } : options, this);\n }\n return res;\n }\n resolve(keys) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, options);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n const codes = options.lngs ? options.lngs : this.languageUtils.toResolveHierarchy(options.lng || this.language, options.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils && this.utils.hasLoadedNamespace && !this.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat && this.i18nFormat.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, options.count, options);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator}${options.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n const useOptionsReplaceForData = options.replace && typeof options.replace !== 'string';\n let data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data.count = options.count;\n }\n if (this.options.interpolation.defaultVariables) {\n data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n }\n if (!useOptionsReplaceForData) {\n data = {\n ...data\n };\n for (const key of optionsKeys) {\n delete data[key];\n }\n }\n return data;\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n const specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n let p = code.split('-');\n if (this.options.lowerCaseLng) {\n p = p.map(part => part.toLowerCase());\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n return p.join('-');\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (typeof code === 'string' && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nlet sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nlet _rulesPluralsTypes = {\n 1: function (n) {\n return Number(n > 1);\n },\n 2: function (n) {\n return Number(n != 1);\n },\n 3: function (n) {\n return 0;\n },\n 4: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function (n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function (n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function (n) {\n return Number(n >= 2);\n },\n 10: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function (n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function (n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function (n) {\n return Number(n !== 0);\n },\n 14: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function (n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function (n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nconst nonIntlVersions = ['v1', 'v2', 'v3'];\nconst intlVersions = ['v4'];\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nfunction createRules() {\n const rules = {};\n sets.forEach(set => {\n set.lngs.forEach(l => {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\nclass PluralResolver {\n constructor(languageUtils) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n if ((!this.options.compatibilityJSON || intlVersions.includes(this.options.compatibilityJSON)) && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n this.rules = createRules();\n }\n addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n getRule(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(getCleanedCode(code === 'dev' ? 'en' : code), {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (err) {\n return;\n }\n }\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n needsPlural(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n return rule && rule.numbers.length > 1;\n }\n getPluralFormsOfKey(code, key) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (!rule) {\n return [];\n }\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n return rule.numbers.map(number => this.getSuffix(code, number, options));\n }\n getSuffix(code, count) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const rule = this.getRule(code, options);\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n return this.getSuffixRetroCompatible(rule, count);\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return '';\n }\n getSuffixRetroCompatible(rule, count) {\n const idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n let suffix = rule.numbers[idx];\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n const returnSuffix = () => this.options.prepend && suffix.toString() ? this.options.prepend + suffix.toString() : suffix.toString();\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return `_plural_${suffix.toString()}`;\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n shouldUseIntlApi() {\n return !nonIntlVersions.includes(this.options.compatibilityJSON);\n }\n}\n\nfunction deepFindWithDefaults(data, defaultData, key) {\n let keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n let ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && typeof key === 'string') {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n}\nclass Interpolator {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || (value => value);\n this.init(options);\n }\n init() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const getOrResetRegExp = (existingRegExp, pattern) => {\n if (existingRegExp && existingRegExp.source === pattern) {\n existingRegExp.lastIndex = 0;\n return existingRegExp;\n }\n return new RegExp(pattern, 'g');\n };\n this.regexp = getOrResetRegExp(this.regexp, `${this.prefix}(.+?)${this.suffix}`);\n this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);\n this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, `${this.nestingPrefix}(.+?)${this.nestingSuffix}`);\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let match;\n let value;\n let clonedOptions;\n function handleHasOptions(key, inheritedOptions) {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${sep}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n delete clonedOptions.defaultValue;\n return key;\n }\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n let doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n const r = match[1].split(this.formatSeparator).map(elem => elem.trim());\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (doReduce) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nfunction parseFormatStr(formatStr) {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (!opt) return;\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n}\nfunction createCachedFormatter(fn) {\n const cache = {};\n return function invokeFormatter(val, lng, options) {\n const key = lng + JSON.stringify(options);\n let formatter = cache[key];\n if (!formatter) {\n formatter = fn(getCleanedCode(lng), options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n}\nclass Formatter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n this.init(options);\n }\n init(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n const iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const formats = format.split(this.formatSeparator);\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\nclass Connector extends EventEmitter {\n constructor(backend, store, services) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n if (this.backend && this.backend.init) {\n this.backend.init(services, options.backend, options);\n }\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (data) {\n this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n skipCopy: true\n });\n }\n this.state[name] = err ? -1 : 2;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName) {\n let tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n let wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n let callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let callback = arguments.length > 3 ? arguments[3] : undefined;\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name) {\n let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n let clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : () => {};\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend && this.backend.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: value => value,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n}\n\nfunction noop() {}\nfunction bindMemberFunctions(inst) {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\nclass I18n extends EventEmitter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initImmediate) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init() {\n var _this = this;\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n this.isInitializing = true;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n }\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n _this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = function () {\n return _this.store[fcName](...arguments);\n };\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = function () {\n _this.store[fcName](...arguments);\n return _this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n this.isInitializing = false;\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && this.options.compatibilityAPI !== 'v1' && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n let usedCallback = callback;\n const usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n if (this.options.preload) {\n this.options.preload.forEach(l => append(l));\n }\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n changeLanguage(lng, callback) {\n var _this2 = this;\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this2.t(...arguments);\n });\n if (callback) callback(err, function () {\n return _this2.t(...arguments);\n });\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const l = typeof lngs === 'string' ? lngs : this.services.languageUtils.getBestMatchFromCodes(lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n if (this.services.languageDetector && this.services.languageDetector.cacheUserLanguage) this.services.languageDetector.cacheUserLanguage(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n var _this3 = this;\n const fixedT = function (key, opts) {\n let options;\n if (typeof opts !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n options = _this3.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = {\n ...opts\n };\n }\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = _this3.options.keySeparator || '.';\n let resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => `${options.keyPrefix}${keySeparator}${k}`);\n } else {\n resultKey = options.keyPrefix ? `${options.keyPrefix}${keySeparator}${key}` : key;\n }\n return _this3.t(resultKey, options);\n };\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t() {\n return this.translator && this.translator.translate(...arguments);\n }\n exists() {\n return this.translator && this.translator.exists(...arguments);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0);\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n cloneInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n clone.store = new ResourceStore(this.store.data, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","/* global GATSBY_THEME_I18N_REACT_I18NEXT */\nimport * as React from \"react\"\nimport i18n from \"i18next\"\nimport { I18nextProvider } from \"react-i18next\"\nimport { withDefaults } from \"../utils/default-options\"\n\nconst wrapPageElement = ({ element, props }, themeOptions) => {\n const { i18nextOptions } = withDefaults(themeOptions)\n const locale = props.pageContext.locale\n\n let resources = {}\n\n i18nextOptions.ns.forEach((name) => {\n const data = require(`${GATSBY_THEME_I18N_REACT_I18NEXT}/${locale}/${name}.json`)\n resources = {\n ...resources,\n [locale]: {\n ...resources[locale],\n [name]: data,\n },\n }\n })\n\n const i18nConfig = {\n lng: locale,\n resources,\n ...i18nextOptions,\n }\n\n i18n.init(i18nConfig)\n\n return {element}\n}\n\nexport { wrapPageElement }\n","const defaultNamespace = `translation`\nconst fallbackLng = `en`\n\nfunction withDefaults(themeOptions) {\n return {\n ...themeOptions,\n i18nextOptions: {\n defaultNS: defaultNamespace,\n ns: [defaultNamespace],\n fallbackLng,\n initImmediate: false,\n ...themeOptions.i18nextOptions,\n interpolation: {\n escapeValue: false,\n ...themeOptions.i18nextOptions.interpolation,\n },\n },\n }\n}\n\nmodule.exports = {\n defaultNamespace,\n withDefaults,\n}\n","import * as React from \"react\"\nimport { Helmet } from \"react-helmet\"\nimport { useStaticQuery, graphql, withPrefix } from \"gatsby\"\nimport { useLocalization } from \"../hooks/use-localization\"\n\nconst SEO = ({ location, pageContext }) => {\n const { locale, config, defaultLang } = useLocalization()\n const data = useStaticQuery(graphql`\n query LocalizationSEOQuery {\n site {\n siteMetadata {\n siteUrl\n }\n }\n }\n `)\n const defaultSiteUrl = data.site.siteMetadata.siteUrl\n const { pathname } = location\n\n return (\n \n \n \n \n {config.map((l) => {\n let href\n\n if (l.code === locale) return null\n\n if (l.code === defaultLang) {\n href = `${defaultSiteUrl}${\n pageContext.originalPath === withPrefix(`/`)\n ? ``\n : pageContext.originalPath\n }`\n } else {\n href = `${defaultSiteUrl}${withPrefix(\n `/${l.code}${pageContext.originalPath}`\n )}`\n }\n\n return (\n \n )\n })}\n \n {config.map((l) => {\n if (l.code === locale) return null\n return (\n \n )\n })}\n \n )\n}\n\nexport { SEO }\n","import * as React from \"react\"\nimport { LocaleProvider } from \"./context\"\nimport { SEO } from \"./components/seo\"\n\nconst wrapPageElement = ({ element, props }) => (\n \n \n {element}\n \n)\n\nexport { wrapPageElement }\n","import * as React from \"react\"\nimport { Link } from \"gatsby\"\nimport { localizedPath } from \"../helpers\"\nimport { useLocalization } from \"../hooks/use-localization\"\n\nexport const LocalizedLink = ({ to, language, ...props }) => {\n const { defaultLang, prefixDefault, locale } = useLocalization()\n const linkLocale = language || locale\n\n return (\n \n )\n}\n","import * as React from \"react\"\nimport { defaultLang } from \"../utils/default-options\"\n\nconst LocaleContext = React.createContext(defaultLang)\n\nconst LocaleProvider = ({\n children,\n pageContext: { locale = defaultLang },\n}) => {children}\n\nexport { LocaleContext, LocaleProvider }\n","function isDefaultLang(locale, defaultLang) {\n return locale === defaultLang\n}\n\nfunction localizedPath({ defaultLang, prefixDefault, locale, path }) {\n // The default language isn't prefixed\n if (isDefaultLang(locale, defaultLang) && !prefixDefault) {\n return path\n }\n\n const [, base] = path.split(`/`)\n\n // If for whatever reason we receive an already localized path\n // (e.g. if the path was made with location.pathname)\n // just return it as-is.\n if (base === locale) {\n return path\n }\n\n // If it's another language, prefix with the locale\n return `/${locale}${path}`\n}\n\nfunction getLanguages({ locales, localeStr }) {\n // If \"localeStr\" is not defined, return the list of locales from the i18n config file\n if (!localeStr) {\n return locales\n }\n\n const langCodes = localeStr.split(` `)\n const langs = []\n\n for (const code of langCodes) {\n const lang = locales.find((lang) => lang.code === code)\n\n if (!lang) {\n throw new Error(\n `Invalid localed provided: ${code}. See your i18n config file for a list of available locales.`\n )\n }\n\n langs.push(lang)\n }\n\n return langs\n}\n\nfunction getDefaultLanguage({ locales, defaultLang }) {\n return locales.find((locale) => locale.code === defaultLang)\n}\n\nmodule.exports = {\n localizedPath,\n getLanguages,\n getDefaultLanguage,\n}\n","import * as React from \"react\"\nimport { LocaleContext } from \"../context\"\nimport { graphql, useStaticQuery } from \"gatsby\"\nimport { localizedPath } from \"../helpers\"\n\nconst useLocalization = () => {\n const locale = React.useContext(LocaleContext)\n const {\n themeI18N: { defaultLang, prefixDefault, config },\n } = useStaticQuery(graphql`\n query LocalizationConfigQuery {\n themeI18N {\n defaultLang\n prefixDefault\n config {\n code\n hrefLang\n dateFormat\n langDir\n localName\n name\n }\n }\n }\n `)\n\n return {\n locale,\n defaultLang,\n prefixDefault,\n config,\n localizedPath,\n }\n}\n\nexport { useLocalization }\n","const defaultLang = `en`\n\nfunction withDefaults(themeOptions) {\n return {\n ...themeOptions,\n configPath: themeOptions.configPath,\n defaultLang: themeOptions.defaultLang || defaultLang,\n prefixDefault: themeOptions.prefixDefault\n ? themeOptions.prefixDefault\n : false,\n locales: themeOptions.locales || null,\n }\n}\n\nmodule.exports = {\n defaultLang,\n withDefaults,\n}\n","export const isProduction = process.env.NODE_ENV === 'production';\n","import React from 'react';\nimport { useTranslation, } from 'react-i18next';\n\nimport { /*useModalProps,*/ } from 'react-simple-modal-provider';\nimport { LinkExternal, } from '../components/Link';\nimport CommonButton from '../components/CommonButton';\nimport { email, telegramUsername, } from '../configs';\n\n\n\nexport default function GetInTouchModalBody({ children, }) {\n const { t, } = useTranslation('modal-get-in-touch');\n\n return (\n
\n {/*
\n {t('Feel free to contact me')}\n
*/}\n
\n\n
\n \n \n Telegram: @{telegramUsername}\n \n \n
\n
\n\n
\n \n \n Email: {email}\n \n \n
\n
\n );\n}\n","import React, { useEffect, } from 'react';\nimport Modal, { useModalState/*, useModal,*/ } from 'react-simple-modal-provider';\nimport GetInTouchModalBody from './GetInTouchModalBody';\n\n\n\nexport default function GetInTouchModal({ children, }) {\n const [isOpen, setOpen] = useModalState();\n useEffect(() => {\n if (isOpen) {\n document.body.classList.add('no-scroll');\n } else {\n document.body.classList.remove('no-scroll');\n }\n }, [isOpen]);\n\n const onClose = () => {\n setOpen(false);\n }\n\n\n /*const [data, setData] = useState(null);\n const asyncOpen = async () => {\n try {\n await new Promise((r) => setTimeout(r, 1000));\n setData({});\n } catch (error) { console.error(error); }\n };*/\n // const { open: openTemplateModal } = useModal('TemplateModal');\n\n return (\n \n \n \n );\n}\n","import wrapWithProvider from \"./wrap-with-provider\"\nexport const wrapRootElement = wrapWithProvider;\n","import React from 'react';\nimport { ModalProvider } from 'react-simple-modal-provider';\nimport GetInTouchModal from '../../src/modal/GetInTouchModal';\n\n\n\n// eslint-disable-next-line react/display-name,react/prop-types\nexport default ({ element, }) => {\n const modals = [\n GetInTouchModal,\n ];\n\n return ({element});\n}\n","// src/utils/formatProdErrorMessage.ts\nfunction formatProdErrorMessage(code) {\n return `Minified Redux error #${code}; visit https://redux.js.org/Errors?code=${code} for the full message or use the non-minified dev environment for full errors. `;\n}\n\n// src/utils/symbol-observable.ts\nvar $$observable = /* @__PURE__ */ (() => typeof Symbol === \"function\" && Symbol.observable || \"@@observable\")();\nvar symbol_observable_default = $$observable;\n\n// src/utils/actionTypes.ts\nvar randomString = () => Math.random().toString(36).substring(7).split(\"\").join(\".\");\nvar ActionTypes = {\n INIT: `@@redux/INIT${/* @__PURE__ */ randomString()}`,\n REPLACE: `@@redux/REPLACE${/* @__PURE__ */ randomString()}`,\n PROBE_UNKNOWN_ACTION: () => `@@redux/PROBE_UNKNOWN_ACTION${randomString()}`\n};\nvar actionTypes_default = ActionTypes;\n\n// src/utils/isPlainObject.ts\nfunction isPlainObject(obj) {\n if (typeof obj !== \"object\" || obj === null)\n return false;\n let proto = obj;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(obj) === proto || Object.getPrototypeOf(obj) === null;\n}\n\n// src/utils/kindOf.ts\nfunction miniKindOf(val) {\n if (val === void 0)\n return \"undefined\";\n if (val === null)\n return \"null\";\n const type = typeof val;\n switch (type) {\n case \"boolean\":\n case \"string\":\n case \"number\":\n case \"symbol\":\n case \"function\": {\n return type;\n }\n }\n if (Array.isArray(val))\n return \"array\";\n if (isDate(val))\n return \"date\";\n if (isError(val))\n return \"error\";\n const constructorName = ctorName(val);\n switch (constructorName) {\n case \"Symbol\":\n case \"Promise\":\n case \"WeakMap\":\n case \"WeakSet\":\n case \"Map\":\n case \"Set\":\n return constructorName;\n }\n return Object.prototype.toString.call(val).slice(8, -1).toLowerCase().replace(/\\s/g, \"\");\n}\nfunction ctorName(val) {\n return typeof val.constructor === \"function\" ? val.constructor.name : null;\n}\nfunction isError(val) {\n return val instanceof Error || typeof val.message === \"string\" && val.constructor && typeof val.constructor.stackTraceLimit === \"number\";\n}\nfunction isDate(val) {\n if (val instanceof Date)\n return true;\n return typeof val.toDateString === \"function\" && typeof val.getDate === \"function\" && typeof val.setDate === \"function\";\n}\nfunction kindOf(val) {\n let typeOfVal = typeof val;\n if (process.env.NODE_ENV !== \"production\") {\n typeOfVal = miniKindOf(val);\n }\n return typeOfVal;\n}\n\n// src/createStore.ts\nfunction createStore(reducer, preloadedState, enhancer) {\n if (typeof reducer !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : `Expected the root reducer to be a function. Instead, received: '${kindOf(reducer)}'`);\n }\n if (typeof preloadedState === \"function\" && typeof enhancer === \"function\" || typeof enhancer === \"function\" && typeof arguments[3] === \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : \"It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.\");\n }\n if (typeof preloadedState === \"function\" && typeof enhancer === \"undefined\") {\n enhancer = preloadedState;\n preloadedState = void 0;\n }\n if (typeof enhancer !== \"undefined\") {\n if (typeof enhancer !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : `Expected the enhancer to be a function. Instead, received: '${kindOf(enhancer)}'`);\n }\n return enhancer(createStore)(reducer, preloadedState);\n }\n let currentReducer = reducer;\n let currentState = preloadedState;\n let currentListeners = /* @__PURE__ */ new Map();\n let nextListeners = currentListeners;\n let listenerIdCounter = 0;\n let isDispatching = false;\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = /* @__PURE__ */ new Map();\n currentListeners.forEach((listener, key) => {\n nextListeners.set(key, listener);\n });\n }\n }\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : \"You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.\");\n }\n return currentState;\n }\n function subscribe(listener) {\n if (typeof listener !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : `Expected the listener to be a function. Instead, received: '${kindOf(listener)}'`);\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : \"You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api/store#subscribelistener for more details.\");\n }\n let isSubscribed = true;\n ensureCanMutateNextListeners();\n const listenerId = listenerIdCounter++;\n nextListeners.set(listenerId, listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : \"You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api/store#subscribelistener for more details.\");\n }\n isSubscribed = false;\n ensureCanMutateNextListeners();\n nextListeners.delete(listenerId);\n currentListeners = null;\n };\n }\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : `Actions must be plain objects. Instead, the actual type was: '${kindOf(action)}'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.`);\n }\n if (typeof action.type === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n if (typeof action.type !== \"string\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(17) : `Action \"type\" property must be a string. Instead, the actual type was: '${kindOf(action.type)}'. Value was: '${action.type}' (stringified)`);\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : \"Reducers may not dispatch actions.\");\n }\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n const listeners = currentListeners = nextListeners;\n listeners.forEach((listener) => {\n listener();\n });\n return action;\n }\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : `Expected the nextReducer to be a function. Instead, received: '${kindOf(nextReducer)}`);\n }\n currentReducer = nextReducer;\n dispatch({\n type: actionTypes_default.REPLACE\n });\n }\n function observable() {\n const outerSubscribe = subscribe;\n return {\n /**\n * The minimal observable subscription method.\n * @param observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe(observer) {\n if (typeof observer !== \"object\" || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : `Expected the observer to be an object. Instead, received: '${kindOf(observer)}'`);\n }\n function observeState() {\n const observerAsObserver = observer;\n if (observerAsObserver.next) {\n observerAsObserver.next(getState());\n }\n }\n observeState();\n const unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe\n };\n },\n [symbol_observable_default]() {\n return this;\n }\n };\n }\n dispatch({\n type: actionTypes_default.INIT\n });\n const store = {\n dispatch,\n subscribe,\n getState,\n replaceReducer,\n [symbol_observable_default]: observable\n };\n return store;\n}\nfunction legacy_createStore(reducer, preloadedState, enhancer) {\n return createStore(reducer, preloadedState, enhancer);\n}\n\n// src/utils/warning.ts\nfunction warning(message) {\n if (typeof console !== \"undefined\" && typeof console.error === \"function\") {\n console.error(message);\n }\n try {\n throw new Error(message);\n } catch (e) {\n }\n}\n\n// src/combineReducers.ts\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n const reducerKeys = Object.keys(reducers);\n const argumentName = action && action.type === actionTypes_default.INIT ? \"preloadedState argument passed to createStore\" : \"previous state received by the reducer\";\n if (reducerKeys.length === 0) {\n return \"Store does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers.\";\n }\n if (!isPlainObject(inputState)) {\n return `The ${argumentName} has unexpected type of \"${kindOf(inputState)}\". Expected argument to be an object with the following keys: \"${reducerKeys.join('\", \"')}\"`;\n }\n const unexpectedKeys = Object.keys(inputState).filter((key) => !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]);\n unexpectedKeys.forEach((key) => {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === actionTypes_default.REPLACE)\n return;\n if (unexpectedKeys.length > 0) {\n return `Unexpected ${unexpectedKeys.length > 1 ? \"keys\" : \"key\"} \"${unexpectedKeys.join('\", \"')}\" found in ${argumentName}. Expected to find one of the known reducer keys instead: \"${reducerKeys.join('\", \"')}\". Unexpected keys will be ignored.`;\n }\n}\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach((key) => {\n const reducer = reducers[key];\n const initialState = reducer(void 0, {\n type: actionTypes_default.INIT\n });\n if (typeof initialState === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : `The slice reducer for key \"${key}\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.`);\n }\n if (typeof reducer(void 0, {\n type: actionTypes_default.PROBE_UNKNOWN_ACTION()\n }) === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : `The slice reducer for key \"${key}\" returned undefined when probed with a random type. Don't try to handle '${actionTypes_default.INIT}' or other actions in \"redux/*\" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.`);\n }\n });\n}\nfunction combineReducers(reducers) {\n const reducerKeys = Object.keys(reducers);\n const finalReducers = {};\n for (let i = 0; i < reducerKeys.length; i++) {\n const key = reducerKeys[i];\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof reducers[key] === \"undefined\") {\n warning(`No reducer provided for key \"${key}\"`);\n }\n }\n if (typeof reducers[key] === \"function\") {\n finalReducers[key] = reducers[key];\n }\n }\n const finalReducerKeys = Object.keys(finalReducers);\n let unexpectedKeyCache;\n if (process.env.NODE_ENV !== \"production\") {\n unexpectedKeyCache = {};\n }\n let shapeAssertionError;\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n return function combination(state = {}, action) {\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n if (process.env.NODE_ENV !== \"production\") {\n const warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n let hasChanged = false;\n const nextState = {};\n for (let i = 0; i < finalReducerKeys.length; i++) {\n const key = finalReducerKeys[i];\n const reducer = finalReducers[key];\n const previousStateForKey = state[key];\n const nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === \"undefined\") {\n const actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : `When called with an action of type ${actionType ? `\"${String(actionType)}\"` : \"(unknown type)\"}, the slice reducer for key \"${key}\" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.`);\n }\n nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\n// src/bindActionCreators.ts\nfunction bindActionCreator(actionCreator, dispatch) {\n return function(...args) {\n return dispatch(actionCreator.apply(this, args));\n };\n}\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === \"function\") {\n return bindActionCreator(actionCreators, dispatch);\n }\n if (typeof actionCreators !== \"object\" || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : `bindActionCreators expected an object or a function, but instead received: '${kindOf(actionCreators)}'. Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?`);\n }\n const boundActionCreators = {};\n for (const key in actionCreators) {\n const actionCreator = actionCreators[key];\n if (typeof actionCreator === \"function\") {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\n}\n\n// src/compose.ts\nfunction compose(...funcs) {\n if (funcs.length === 0) {\n return (arg) => arg;\n }\n if (funcs.length === 1) {\n return funcs[0];\n }\n return funcs.reduce((a, b) => (...args) => a(b(...args)));\n}\n\n// src/applyMiddleware.ts\nfunction applyMiddleware(...middlewares) {\n return (createStore2) => (reducer, preloadedState) => {\n const store = createStore2(reducer, preloadedState);\n let dispatch = () => {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : \"Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.\");\n };\n const middlewareAPI = {\n getState: store.getState,\n dispatch: (action, ...args) => dispatch(action, ...args)\n };\n const chain = middlewares.map((middleware) => middleware(middlewareAPI));\n dispatch = compose(...chain)(store.dispatch);\n return {\n ...store,\n dispatch\n };\n };\n}\n\n// src/utils/isAction.ts\nfunction isAction(action) {\n return isPlainObject(action) && \"type\" in action && typeof action.type === \"string\";\n}\nexport {\n actionTypes_default as __DO_NOT_USE__ActionTypes,\n applyMiddleware,\n bindActionCreators,\n combineReducers,\n compose,\n createStore,\n isAction,\n isPlainObject,\n legacy_createStore\n};\n//# sourceMappingURL=redux.mjs.map","export var KEY_PREFIX = 'persist:';\nexport var FLUSH = 'persist/FLUSH';\nexport var REHYDRATE = 'persist/REHYDRATE';\nexport var PAUSE = 'persist/PAUSE';\nexport var PERSIST = 'persist/PERSIST';\nexport var PURGE = 'persist/PURGE';\nexport var REGISTER = 'persist/REGISTER';\nexport var DEFAULT_VERSION = -1;","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/*\n autoMergeLevel1: \n - merges 1 level of substate\n - skips substate if already modified\n*/\nexport default function autoMergeLevel1(inboundState, originalState, reducedState, _ref) {\n var debug = _ref.debug;\n\n var newState = _objectSpread({}, reducedState); // only rehydrate if inboundState exists and is an object\n\n\n if (inboundState && _typeof(inboundState) === 'object') {\n Object.keys(inboundState).forEach(function (key) {\n // ignore _persist data\n if (key === '_persist') return; // if reducer modifies substate, skip auto rehydration\n\n if (originalState[key] !== reducedState[key]) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist/stateReconciler: sub state for key `%s` modified, skipping.', key);\n return;\n } // otherwise hard set the new value\n\n\n newState[key] = inboundState[key];\n });\n }\n\n if (process.env.NODE_ENV !== 'production' && debug && inboundState && _typeof(inboundState) === 'object') console.log(\"redux-persist/stateReconciler: rehydrated keys '\".concat(Object.keys(inboundState).join(', '), \"'\"));\n return newState;\n}","import { KEY_PREFIX, REHYDRATE } from './constants';\n// @TODO remove once flow < 0.63 support is no longer required.\nexport default function createPersistoid(config) {\n // defaults\n var blacklist = config.blacklist || null;\n var whitelist = config.whitelist || null;\n var transforms = config.transforms || [];\n var throttle = config.throttle || 0;\n var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n var storage = config.storage;\n var serialize;\n\n if (config.serialize === false) {\n serialize = function serialize(x) {\n return x;\n };\n } else if (typeof config.serialize === 'function') {\n serialize = config.serialize;\n } else {\n serialize = defaultSerialize;\n }\n\n var writeFailHandler = config.writeFailHandler || null; // initialize stateful values\n\n var lastState = {};\n var stagedState = {};\n var keysToProcess = [];\n var timeIterator = null;\n var writePromise = null;\n\n var update = function update(state) {\n // add any changed keys to the queue\n Object.keys(state).forEach(function (key) {\n if (!passWhitelistBlacklist(key)) return; // is keyspace ignored? noop\n\n if (lastState[key] === state[key]) return; // value unchanged? noop\n\n if (keysToProcess.indexOf(key) !== -1) return; // is key already queued? noop\n\n keysToProcess.push(key); // add key to queue\n }); //if any key is missing in the new state which was present in the lastState,\n //add it for processing too\n\n Object.keys(lastState).forEach(function (key) {\n if (state[key] === undefined && passWhitelistBlacklist(key) && keysToProcess.indexOf(key) === -1 && lastState[key] !== undefined) {\n keysToProcess.push(key);\n }\n }); // start the time iterator if not running (read: throttle)\n\n if (timeIterator === null) {\n timeIterator = setInterval(processNextKey, throttle);\n }\n\n lastState = state;\n };\n\n function processNextKey() {\n if (keysToProcess.length === 0) {\n if (timeIterator) clearInterval(timeIterator);\n timeIterator = null;\n return;\n }\n\n var key = keysToProcess.shift();\n var endState = transforms.reduce(function (subState, transformer) {\n return transformer.in(subState, key, lastState);\n }, lastState[key]);\n\n if (endState !== undefined) {\n try {\n stagedState[key] = serialize(endState);\n } catch (err) {\n console.error('redux-persist/createPersistoid: error serializing state', err);\n }\n } else {\n //if the endState is undefined, no need to persist the existing serialized content\n delete stagedState[key];\n }\n\n if (keysToProcess.length === 0) {\n writeStagedState();\n }\n }\n\n function writeStagedState() {\n // cleanup any removed keys just before write.\n Object.keys(stagedState).forEach(function (key) {\n if (lastState[key] === undefined) {\n delete stagedState[key];\n }\n });\n writePromise = storage.setItem(storageKey, serialize(stagedState)).catch(onWriteFail);\n }\n\n function passWhitelistBlacklist(key) {\n if (whitelist && whitelist.indexOf(key) === -1 && key !== '_persist') return false;\n if (blacklist && blacklist.indexOf(key) !== -1) return false;\n return true;\n }\n\n function onWriteFail(err) {\n // @TODO add fail handlers (typically storage full)\n if (writeFailHandler) writeFailHandler(err);\n\n if (err && process.env.NODE_ENV !== 'production') {\n console.error('Error storing data', err);\n }\n }\n\n var flush = function flush() {\n while (keysToProcess.length !== 0) {\n processNextKey();\n }\n\n return writePromise || Promise.resolve();\n }; // return `persistoid`\n\n\n return {\n update: update,\n flush: flush\n };\n} // @NOTE in the future this may be exposed via config\n\nfunction defaultSerialize(data) {\n return JSON.stringify(data);\n}","import { KEY_PREFIX } from './constants';\nexport default function getStoredState(config) {\n var transforms = config.transforms || [];\n var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n var storage = config.storage;\n var debug = config.debug;\n var deserialize;\n\n if (config.deserialize === false) {\n deserialize = function deserialize(x) {\n return x;\n };\n } else if (typeof config.deserialize === 'function') {\n deserialize = config.deserialize;\n } else {\n deserialize = defaultDeserialize;\n }\n\n return storage.getItem(storageKey).then(function (serialized) {\n if (!serialized) return undefined;else {\n try {\n var state = {};\n var rawState = deserialize(serialized);\n Object.keys(rawState).forEach(function (key) {\n state[key] = transforms.reduceRight(function (subState, transformer) {\n return transformer.out(subState, key, rawState);\n }, deserialize(rawState[key]));\n });\n return state;\n } catch (err) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log(\"redux-persist/getStoredState: Error restoring data \".concat(serialized), err);\n throw err;\n }\n }\n });\n}\n\nfunction defaultDeserialize(serial) {\n return JSON.parse(serial);\n}","import { KEY_PREFIX } from './constants';\nexport default function purgeStoredState(config) {\n var storage = config.storage;\n var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n return storage.removeItem(storageKey, warnIfRemoveError);\n}\n\nfunction warnIfRemoveError(err) {\n if (err && process.env.NODE_ENV !== 'production') {\n console.error('redux-persist/purgeStoredState: Error purging data stored state', err);\n }\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { FLUSH, PAUSE, PERSIST, PURGE, REHYDRATE, DEFAULT_VERSION } from './constants';\nimport autoMergeLevel1 from './stateReconciler/autoMergeLevel1';\nimport createPersistoid from './createPersistoid';\nimport defaultGetStoredState from './getStoredState';\nimport purgeStoredState from './purgeStoredState';\nvar DEFAULT_TIMEOUT = 5000;\n/*\n @TODO add validation / handling for:\n - persisting a reducer which has nested _persist\n - handling actions that fire before reydrate is called\n*/\n\nexport default function persistReducer(config, baseReducer) {\n if (process.env.NODE_ENV !== 'production') {\n if (!config) throw new Error('config is required for persistReducer');\n if (!config.key) throw new Error('key is required in persistor config');\n if (!config.storage) throw new Error(\"redux-persist: config.storage is required. Try using one of the provided storage engines `import storage from 'redux-persist/lib/storage'`\");\n }\n\n var version = config.version !== undefined ? config.version : DEFAULT_VERSION;\n var debug = config.debug || false;\n var stateReconciler = config.stateReconciler === undefined ? autoMergeLevel1 : config.stateReconciler;\n var getStoredState = config.getStoredState || defaultGetStoredState;\n var timeout = config.timeout !== undefined ? config.timeout : DEFAULT_TIMEOUT;\n var _persistoid = null;\n var _purge = false;\n var _paused = true;\n\n var conditionalUpdate = function conditionalUpdate(state) {\n // update the persistoid only if we are rehydrated and not paused\n state._persist.rehydrated && _persistoid && !_paused && _persistoid.update(state);\n return state;\n };\n\n return function (state, action) {\n var _ref = state || {},\n _persist = _ref._persist,\n rest = _objectWithoutProperties(_ref, [\"_persist\"]); // $FlowIgnore need to update State type\n\n\n var restState = rest;\n\n if (action.type === PERSIST) {\n var _sealed = false;\n\n var _rehydrate = function _rehydrate(payload, err) {\n // dev warning if we are already sealed\n if (process.env.NODE_ENV !== 'production' && _sealed) console.error(\"redux-persist: rehydrate for \\\"\".concat(config.key, \"\\\" called after timeout.\"), payload, err); // only rehydrate if we are not already sealed\n\n if (!_sealed) {\n action.rehydrate(config.key, payload, err);\n _sealed = true;\n }\n };\n\n timeout && setTimeout(function () {\n !_sealed && _rehydrate(undefined, new Error(\"redux-persist: persist timed out for persist key \\\"\".concat(config.key, \"\\\"\")));\n }, timeout); // @NOTE PERSIST resumes if paused.\n\n _paused = false; // @NOTE only ever create persistoid once, ensure we call it at least once, even if _persist has already been set\n\n if (!_persistoid) _persistoid = createPersistoid(config); // @NOTE PERSIST can be called multiple times, noop after the first\n\n if (_persist) {\n // We still need to call the base reducer because there might be nested\n // uses of persistReducer which need to be aware of the PERSIST action\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: _persist\n });\n }\n\n if (typeof action.rehydrate !== 'function' || typeof action.register !== 'function') throw new Error('redux-persist: either rehydrate or register is not a function on the PERSIST action. This can happen if the action is being replayed. This is an unexplored use case, please open an issue and we will figure out a resolution.');\n action.register(config.key);\n getStoredState(config).then(function (restoredState) {\n var migrate = config.migrate || function (s, v) {\n return Promise.resolve(s);\n };\n\n migrate(restoredState, version).then(function (migratedState) {\n _rehydrate(migratedState);\n }, function (migrateErr) {\n if (process.env.NODE_ENV !== 'production' && migrateErr) console.error('redux-persist: migration error', migrateErr);\n\n _rehydrate(undefined, migrateErr);\n });\n }, function (err) {\n _rehydrate(undefined, err);\n });\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: {\n version: version,\n rehydrated: false\n }\n });\n } else if (action.type === PURGE) {\n _purge = true;\n action.result(purgeStoredState(config));\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: _persist\n });\n } else if (action.type === FLUSH) {\n action.result(_persistoid && _persistoid.flush());\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: _persist\n });\n } else if (action.type === PAUSE) {\n _paused = true;\n } else if (action.type === REHYDRATE) {\n // noop on restState if purging\n if (_purge) return _objectSpread({}, restState, {\n _persist: _objectSpread({}, _persist, {\n rehydrated: true\n }) // @NOTE if key does not match, will continue to default else below\n\n });\n\n if (action.key === config.key) {\n var reducedState = baseReducer(restState, action);\n var inboundState = action.payload; // only reconcile state if stateReconciler and inboundState are both defined\n\n var reconciledRest = stateReconciler !== false && inboundState !== undefined ? stateReconciler(inboundState, state, reducedState, config) : reducedState;\n\n var _newState = _objectSpread({}, reconciledRest, {\n _persist: _objectSpread({}, _persist, {\n rehydrated: true\n })\n });\n\n return conditionalUpdate(_newState);\n }\n } // if we have not already handled PERSIST, straight passthrough\n\n\n if (!_persist) return baseReducer(state, action); // run base reducer:\n // is state modified ? return original : return updated\n\n var newState = baseReducer(restState, action);\n if (newState === restState) return state;\n return conditionalUpdate(_objectSpread({}, newState, {\n _persist: _persist\n }));\n };\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { createStore } from 'redux';\nimport { FLUSH, PAUSE, PERSIST, PURGE, REGISTER, REHYDRATE } from './constants';\nvar initialState = {\n registry: [],\n bootstrapped: false\n};\n\nvar persistorReducer = function persistorReducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case REGISTER:\n return _objectSpread({}, state, {\n registry: [].concat(_toConsumableArray(state.registry), [action.key])\n });\n\n case REHYDRATE:\n var firstIndex = state.registry.indexOf(action.key);\n\n var registry = _toConsumableArray(state.registry);\n\n registry.splice(firstIndex, 1);\n return _objectSpread({}, state, {\n registry: registry,\n bootstrapped: registry.length === 0\n });\n\n default:\n return state;\n }\n};\n\nexport default function persistStore(store, options, cb) {\n // help catch incorrect usage of passing PersistConfig in as PersistorOptions\n if (process.env.NODE_ENV !== 'production') {\n var optionsToTest = options || {};\n var bannedKeys = ['blacklist', 'whitelist', 'transforms', 'storage', 'keyPrefix', 'migrate'];\n bannedKeys.forEach(function (k) {\n if (!!optionsToTest[k]) console.error(\"redux-persist: invalid option passed to persistStore: \\\"\".concat(k, \"\\\". You may be incorrectly passing persistConfig into persistStore, whereas it should be passed into persistReducer.\"));\n });\n }\n\n var boostrappedCb = cb || false;\n\n var _pStore = createStore(persistorReducer, initialState, options && options.enhancer ? options.enhancer : undefined);\n\n var register = function register(key) {\n _pStore.dispatch({\n type: REGISTER,\n key: key\n });\n };\n\n var rehydrate = function rehydrate(key, payload, err) {\n var rehydrateAction = {\n type: REHYDRATE,\n payload: payload,\n err: err,\n key: key // dispatch to `store` to rehydrate and `persistor` to track result\n\n };\n store.dispatch(rehydrateAction);\n\n _pStore.dispatch(rehydrateAction);\n\n if (boostrappedCb && persistor.getState().bootstrapped) {\n boostrappedCb();\n boostrappedCb = false;\n }\n };\n\n var persistor = _objectSpread({}, _pStore, {\n purge: function purge() {\n var results = [];\n store.dispatch({\n type: PURGE,\n result: function result(purgeResult) {\n results.push(purgeResult);\n }\n });\n return Promise.all(results);\n },\n flush: function flush() {\n var results = [];\n store.dispatch({\n type: FLUSH,\n result: function result(flushResult) {\n results.push(flushResult);\n }\n });\n return Promise.all(results);\n },\n pause: function pause() {\n store.dispatch({\n type: PAUSE\n });\n },\n persist: function persist() {\n store.dispatch({\n type: PERSIST,\n register: register,\n rehydrate: rehydrate\n });\n }\n });\n\n if (!(options && options.manualPersist)) {\n persistor.persist();\n }\n\n return persistor;\n}","var createSymbol = function createSymbol(name) {\n return \"@@redux-saga/\" + name;\n};\n\nvar CANCEL =\n/*#__PURE__*/\ncreateSymbol('CANCEL_PROMISE');\nvar CHANNEL_END_TYPE =\n/*#__PURE__*/\ncreateSymbol('CHANNEL_END');\nvar IO =\n/*#__PURE__*/\ncreateSymbol('IO');\nvar MATCH =\n/*#__PURE__*/\ncreateSymbol('MATCH');\nvar MULTICAST =\n/*#__PURE__*/\ncreateSymbol('MULTICAST');\nvar SAGA_ACTION =\n/*#__PURE__*/\ncreateSymbol('SAGA_ACTION');\nvar SELF_CANCELLATION =\n/*#__PURE__*/\ncreateSymbol('SELF_CANCELLATION');\nvar TASK =\n/*#__PURE__*/\ncreateSymbol('TASK');\nvar TASK_CANCEL =\n/*#__PURE__*/\ncreateSymbol('TASK_CANCEL');\nvar TERMINATE =\n/*#__PURE__*/\ncreateSymbol('TERMINATE');\nvar SAGA_LOCATION =\n/*#__PURE__*/\ncreateSymbol('LOCATION');\n\nexport { CANCEL, CHANNEL_END_TYPE, IO, MATCH, MULTICAST, SAGA_ACTION, SAGA_LOCATION, SELF_CANCELLATION, TASK, TASK_CANCEL, TERMINATE };\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","import { TASK, SAGA_ACTION, MULTICAST, IO } from '@redux-saga/symbols';\n\nvar undef = function undef(v) {\n return v === null || v === undefined;\n};\nvar notUndef = function notUndef(v) {\n return v !== null && v !== undefined;\n};\nvar func = function func(f) {\n return typeof f === 'function';\n};\nvar number = function number(n) {\n return typeof n === 'number';\n};\nvar string = function string(s) {\n return typeof s === 'string';\n};\nvar array = Array.isArray;\nvar object = function object(obj) {\n return obj && !array(obj) && typeof obj === 'object';\n};\nvar promise = function promise(p) {\n return p && func(p.then);\n};\nvar iterator = function iterator(it) {\n return it && func(it.next) && func(it.throw);\n};\nvar iterable = function iterable(it) {\n return it && func(Symbol) ? func(it[Symbol.iterator]) : array(it);\n};\nvar task = function task(t) {\n return t && t[TASK];\n};\nvar sagaAction = function sagaAction(a) {\n return Boolean(a && a[SAGA_ACTION]);\n};\nvar observable = function observable(ob) {\n return ob && func(ob.subscribe);\n};\nvar buffer = function buffer(buf) {\n return buf && func(buf.isEmpty) && func(buf.take) && func(buf.put);\n};\nvar pattern = function pattern(pat) {\n return pat && (string(pat) || symbol(pat) || func(pat) || array(pat) && pat.every(pattern));\n};\nvar channel = function channel(ch) {\n return ch && func(ch.take) && func(ch.close);\n};\nvar stringableFunc = function stringableFunc(f) {\n return func(f) && f.hasOwnProperty('toString');\n};\nvar symbol = function symbol(sym) {\n return Boolean(sym) && typeof Symbol === 'function' && sym.constructor === Symbol && sym !== Symbol.prototype;\n};\nvar multicast = function multicast(ch) {\n return channel(ch) && ch[MULTICAST];\n};\nvar effect = function effect(eff) {\n return eff && eff[IO];\n};\n\nexport { array, buffer, channel, effect, func, iterable, iterator, multicast, notUndef, number, object, observable, pattern, promise, sagaAction, string, stringableFunc, symbol, task, undef };\n","import { TASK_CANCEL, TERMINATE, SAGA_LOCATION, SAGA_ACTION, IO, SELF_CANCELLATION } from '@redux-saga/symbols';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport { array, notUndef, pattern, multicast, channel, undef, effect, task, func, buffer, string, object } from '@redux-saga/is';\nimport delayP from '@redux-saga/delay-p';\n\nvar konst = function konst(v) {\n return function () {\n return v;\n };\n};\nvar kTrue =\n/*#__PURE__*/\nkonst(true);\n\nvar noop = function noop() {};\n\nif (process.env.NODE_ENV !== 'production' && typeof Proxy !== 'undefined') {\n noop =\n /*#__PURE__*/\n new Proxy(noop, {\n set: function set() {\n throw internalErr('There was an attempt to assign a property to internal `noop` function.');\n }\n });\n}\nvar identity = function identity(v) {\n return v;\n};\nvar hasSymbol = typeof Symbol === 'function';\nvar asyncIteratorSymbol = hasSymbol && Symbol.asyncIterator ? Symbol.asyncIterator : '@@asyncIterator';\nfunction check(value, predicate, error) {\n if (!predicate(value)) {\n throw new Error(error);\n }\n}\nvar assignWithSymbols = function assignWithSymbols(target, source) {\n _extends(target, source);\n\n if (Object.getOwnPropertySymbols) {\n Object.getOwnPropertySymbols(source).forEach(function (s) {\n target[s] = source[s];\n });\n }\n};\nvar flatMap = function flatMap(mapper, arr) {\n var _ref;\n\n return (_ref = []).concat.apply(_ref, arr.map(mapper));\n};\nfunction remove(array, item) {\n var index = array.indexOf(item);\n\n if (index >= 0) {\n array.splice(index, 1);\n }\n}\nfunction once(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n\n called = true;\n fn();\n };\n}\n\nvar kThrow = function kThrow(err) {\n throw err;\n};\n\nvar kReturn = function kReturn(value) {\n return {\n value: value,\n done: true\n };\n};\n\nfunction makeIterator(next, thro, name) {\n if (thro === void 0) {\n thro = kThrow;\n }\n\n if (name === void 0) {\n name = 'iterator';\n }\n\n var iterator = {\n meta: {\n name: name\n },\n next: next,\n throw: thro,\n return: kReturn,\n isSagaIterator: true\n };\n\n if (typeof Symbol !== 'undefined') {\n iterator[Symbol.iterator] = function () {\n return iterator;\n };\n }\n\n return iterator;\n}\nfunction logError(error, _ref2) {\n var sagaStack = _ref2.sagaStack;\n\n /*eslint-disable no-console*/\n console.error(error);\n console.error(sagaStack);\n}\nvar internalErr = function internalErr(err) {\n return new Error(\"\\n redux-saga: Error checking hooks detected an inconsistent state. This is likely a bug\\n in redux-saga code and not yours. Thanks for reporting this in the project's github repo.\\n Error: \" + err + \"\\n\");\n};\nvar createSetContextWarning = function createSetContextWarning(ctx, props) {\n return (ctx ? ctx + '.' : '') + \"setContext(props): argument \" + props + \" is not a plain object\";\n};\nvar FROZEN_ACTION_ERROR = \"You can't put (a.k.a. dispatch from saga) frozen actions.\\nWe have to define a special non-enumerable property on those actions for scheduling purposes.\\nOtherwise you wouldn't be able to communicate properly between sagas & other subscribers (action ordering would become far less predictable).\\nIf you are using redux and you care about this behaviour (frozen actions),\\nthen you might want to switch to freezing actions in a middleware rather than in action creator.\\nExample implementation:\\n\\nconst freezeActions = store => next => action => next(Object.freeze(action))\\n\"; // creates empty, but not-holey array\n\nvar createEmptyArray = function createEmptyArray(n) {\n return Array.apply(null, new Array(n));\n};\nvar wrapSagaDispatch = function wrapSagaDispatch(dispatch) {\n return function (action) {\n if (process.env.NODE_ENV !== 'production') {\n check(action, function (ac) {\n return !Object.isFrozen(ac);\n }, FROZEN_ACTION_ERROR);\n }\n\n return dispatch(Object.defineProperty(action, SAGA_ACTION, {\n value: true\n }));\n };\n};\nvar shouldTerminate = function shouldTerminate(res) {\n return res === TERMINATE;\n};\nvar shouldCancel = function shouldCancel(res) {\n return res === TASK_CANCEL;\n};\nvar shouldComplete = function shouldComplete(res) {\n return shouldTerminate(res) || shouldCancel(res);\n};\nfunction createAllStyleChildCallbacks(shape, parentCallback) {\n var keys = Object.keys(shape);\n var totalCount = keys.length;\n\n if (process.env.NODE_ENV !== 'production') {\n check(totalCount, function (c) {\n return c > 0;\n }, 'createAllStyleChildCallbacks: get an empty array or object');\n }\n\n var completedCount = 0;\n var completed;\n var results = array(shape) ? createEmptyArray(totalCount) : {};\n var childCallbacks = {};\n\n function checkEnd() {\n if (completedCount === totalCount) {\n completed = true;\n parentCallback(results);\n }\n }\n\n keys.forEach(function (key) {\n var chCbAtKey = function chCbAtKey(res, isErr) {\n if (completed) {\n return;\n }\n\n if (isErr || shouldComplete(res)) {\n parentCallback.cancel();\n parentCallback(res, isErr);\n } else {\n results[key] = res;\n completedCount++;\n checkEnd();\n }\n };\n\n chCbAtKey.cancel = noop;\n childCallbacks[key] = chCbAtKey;\n });\n\n parentCallback.cancel = function () {\n if (!completed) {\n completed = true;\n keys.forEach(function (key) {\n return childCallbacks[key].cancel();\n });\n }\n };\n\n return childCallbacks;\n}\nfunction getMetaInfo(fn) {\n return {\n name: fn.name || 'anonymous',\n location: getLocation(fn)\n };\n}\nfunction getLocation(instrumented) {\n return instrumented[SAGA_LOCATION];\n}\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\nvar BUFFER_OVERFLOW = \"Channel's Buffer overflow!\";\nvar ON_OVERFLOW_THROW = 1;\nvar ON_OVERFLOW_DROP = 2;\nvar ON_OVERFLOW_SLIDE = 3;\nvar ON_OVERFLOW_EXPAND = 4;\nvar zeroBuffer = {\n isEmpty: kTrue,\n put: noop,\n take: noop\n};\n\nfunction ringBuffer(limit, overflowAction) {\n if (limit === void 0) {\n limit = 10;\n }\n\n var arr = new Array(limit);\n var length = 0;\n var pushIndex = 0;\n var popIndex = 0;\n\n var push = function push(it) {\n arr[pushIndex] = it;\n pushIndex = (pushIndex + 1) % limit;\n length++;\n };\n\n var take = function take() {\n if (length != 0) {\n var it = arr[popIndex];\n arr[popIndex] = null;\n length--;\n popIndex = (popIndex + 1) % limit;\n return it;\n }\n };\n\n var flush = function flush() {\n var items = [];\n\n while (length) {\n items.push(take());\n }\n\n return items;\n };\n\n return {\n isEmpty: function isEmpty() {\n return length == 0;\n },\n put: function put(it) {\n if (length < limit) {\n push(it);\n } else {\n var doubledLimit;\n\n switch (overflowAction) {\n case ON_OVERFLOW_THROW:\n throw new Error(BUFFER_OVERFLOW);\n\n case ON_OVERFLOW_SLIDE:\n arr[pushIndex] = it;\n pushIndex = (pushIndex + 1) % limit;\n popIndex = pushIndex;\n break;\n\n case ON_OVERFLOW_EXPAND:\n doubledLimit = 2 * limit;\n arr = flush();\n length = arr.length;\n pushIndex = arr.length;\n popIndex = 0;\n arr.length = doubledLimit;\n limit = doubledLimit;\n push(it);\n break;\n\n default: // DROP\n\n }\n }\n },\n take: take,\n flush: flush\n };\n}\n\nvar none = function none() {\n return zeroBuffer;\n};\nvar fixed = function fixed(limit) {\n return ringBuffer(limit, ON_OVERFLOW_THROW);\n};\nvar dropping = function dropping(limit) {\n return ringBuffer(limit, ON_OVERFLOW_DROP);\n};\nvar sliding = function sliding(limit) {\n return ringBuffer(limit, ON_OVERFLOW_SLIDE);\n};\nvar expanding = function expanding(initialSize) {\n return ringBuffer(initialSize, ON_OVERFLOW_EXPAND);\n};\n\nvar buffers = /*#__PURE__*/Object.freeze({\n __proto__: null,\n none: none,\n fixed: fixed,\n dropping: dropping,\n sliding: sliding,\n expanding: expanding\n});\n\nvar TAKE = 'TAKE';\nvar PUT = 'PUT';\nvar ALL = 'ALL';\nvar RACE = 'RACE';\nvar CALL = 'CALL';\nvar CPS = 'CPS';\nvar FORK = 'FORK';\nvar JOIN = 'JOIN';\nvar CANCEL = 'CANCEL';\nvar SELECT = 'SELECT';\nvar ACTION_CHANNEL = 'ACTION_CHANNEL';\nvar CANCELLED = 'CANCELLED';\nvar FLUSH = 'FLUSH';\nvar GET_CONTEXT = 'GET_CONTEXT';\nvar SET_CONTEXT = 'SET_CONTEXT';\n\nvar effectTypes = /*#__PURE__*/Object.freeze({\n __proto__: null,\n TAKE: TAKE,\n PUT: PUT,\n ALL: ALL,\n RACE: RACE,\n CALL: CALL,\n CPS: CPS,\n FORK: FORK,\n JOIN: JOIN,\n CANCEL: CANCEL,\n SELECT: SELECT,\n ACTION_CHANNEL: ACTION_CHANNEL,\n CANCELLED: CANCELLED,\n FLUSH: FLUSH,\n GET_CONTEXT: GET_CONTEXT,\n SET_CONTEXT: SET_CONTEXT\n});\n\nvar TEST_HINT = '\\n(HINT: if you are getting these errors in tests, consider using createMockTask from @redux-saga/testing-utils)';\n\nvar makeEffect = function makeEffect(type, payload) {\n var _ref;\n\n return _ref = {}, _ref[IO] = true, _ref.combinator = false, _ref.type = type, _ref.payload = payload, _ref;\n};\n\nvar isForkEffect = function isForkEffect(eff) {\n return effect(eff) && eff.type === FORK;\n};\n\nvar detach = function detach(eff) {\n if (process.env.NODE_ENV !== 'production') {\n check(eff, isForkEffect, 'detach(eff): argument must be a fork effect');\n }\n\n return makeEffect(FORK, _extends({}, eff.payload, {\n detached: true\n }));\n};\nfunction take(patternOrChannel, multicastPattern) {\n if (patternOrChannel === void 0) {\n patternOrChannel = '*';\n }\n\n if (process.env.NODE_ENV !== 'production' && arguments.length) {\n check(arguments[0], notUndef, 'take(patternOrChannel): patternOrChannel is undefined');\n }\n\n if (pattern(patternOrChannel)) {\n if (notUndef(multicastPattern)) {\n /* eslint-disable no-console */\n console.warn(\"take(pattern) takes one argument but two were provided. Consider passing an array for listening to several action types\");\n }\n\n return makeEffect(TAKE, {\n pattern: patternOrChannel\n });\n }\n\n if (multicast(patternOrChannel) && notUndef(multicastPattern) && pattern(multicastPattern)) {\n return makeEffect(TAKE, {\n channel: patternOrChannel,\n pattern: multicastPattern\n });\n }\n\n if (channel(patternOrChannel)) {\n if (notUndef(multicastPattern)) {\n /* eslint-disable no-console */\n console.warn(\"take(channel) takes one argument but two were provided. Second argument is ignored.\");\n }\n\n return makeEffect(TAKE, {\n channel: patternOrChannel\n });\n }\n\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\"take(patternOrChannel): argument \" + patternOrChannel + \" is not valid channel or a valid pattern\");\n }\n}\nvar takeMaybe = function takeMaybe() {\n var eff = take.apply(void 0, arguments);\n eff.payload.maybe = true;\n return eff;\n};\nfunction put(channel$1, action) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n check(channel$1, notUndef, 'put(channel, action): argument channel is undefined');\n check(channel$1, channel, \"put(channel, action): argument \" + channel$1 + \" is not a valid channel\");\n check(action, notUndef, 'put(channel, action): argument action is undefined');\n } else {\n check(channel$1, notUndef, 'put(action): argument action is undefined');\n }\n }\n\n if (undef(action)) {\n action = channel$1; // `undefined` instead of `null` to make default parameter work\n\n channel$1 = undefined;\n }\n\n return makeEffect(PUT, {\n channel: channel$1,\n action: action\n });\n}\nvar putResolve = function putResolve() {\n var eff = put.apply(void 0, arguments);\n eff.payload.resolve = true;\n return eff;\n};\nfunction all(effects) {\n var eff = makeEffect(ALL, effects);\n eff.combinator = true;\n return eff;\n}\nfunction race(effects) {\n var eff = makeEffect(RACE, effects);\n eff.combinator = true;\n return eff;\n} // this match getFnCallDescriptor logic\n\nvar validateFnDescriptor = function validateFnDescriptor(effectName, fnDescriptor) {\n check(fnDescriptor, notUndef, effectName + \": argument fn is undefined or null\");\n\n if (func(fnDescriptor)) {\n return;\n }\n\n var context = null;\n var fn;\n\n if (array(fnDescriptor)) {\n context = fnDescriptor[0];\n fn = fnDescriptor[1];\n check(fn, notUndef, effectName + \": argument of type [context, fn] has undefined or null `fn`\");\n } else if (object(fnDescriptor)) {\n context = fnDescriptor.context;\n fn = fnDescriptor.fn;\n check(fn, notUndef, effectName + \": argument of type {context, fn} has undefined or null `fn`\");\n } else {\n check(fnDescriptor, func, effectName + \": argument fn is not function\");\n return;\n }\n\n if (context && string(fn)) {\n check(context[fn], func, effectName + \": context arguments has no such method - \\\"\" + fn + \"\\\"\");\n return;\n }\n\n check(fn, func, effectName + \": unpacked fn argument (from [context, fn] or {context, fn}) is not a function\");\n};\n\nfunction getFnCallDescriptor(fnDescriptor, args) {\n var context = null;\n var fn;\n\n if (func(fnDescriptor)) {\n fn = fnDescriptor;\n } else {\n if (array(fnDescriptor)) {\n context = fnDescriptor[0];\n fn = fnDescriptor[1];\n } else {\n context = fnDescriptor.context;\n fn = fnDescriptor.fn;\n }\n\n if (context && string(fn) && func(context[fn])) {\n fn = context[fn];\n }\n }\n\n return {\n context: context,\n fn: fn,\n args: args\n };\n}\n\nvar isNotDelayEffect = function isNotDelayEffect(fn) {\n return fn !== delay;\n};\n\nfunction call(fnDescriptor) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var arg0 = typeof args[0] === 'number' ? args[0] : 'ms';\n check(fnDescriptor, isNotDelayEffect, \"instead of writing `yield call(delay, \" + arg0 + \")` where delay is an effect from `redux-saga/effects` you should write `yield delay(\" + arg0 + \")`\");\n validateFnDescriptor('call', fnDescriptor);\n }\n\n return makeEffect(CALL, getFnCallDescriptor(fnDescriptor, args));\n}\nfunction apply(context, fn, args) {\n if (args === void 0) {\n args = [];\n }\n\n var fnDescriptor = [context, fn];\n\n if (process.env.NODE_ENV !== 'production') {\n validateFnDescriptor('apply', fnDescriptor);\n }\n\n return makeEffect(CALL, getFnCallDescriptor([context, fn], args));\n}\nfunction cps(fnDescriptor) {\n if (process.env.NODE_ENV !== 'production') {\n validateFnDescriptor('cps', fnDescriptor);\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return makeEffect(CPS, getFnCallDescriptor(fnDescriptor, args));\n}\nfunction fork(fnDescriptor) {\n if (process.env.NODE_ENV !== 'production') {\n validateFnDescriptor('fork', fnDescriptor);\n check(fnDescriptor, function (arg) {\n return !effect(arg);\n }, 'fork: argument must not be an effect');\n }\n\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return makeEffect(FORK, getFnCallDescriptor(fnDescriptor, args));\n}\nfunction spawn(fnDescriptor) {\n if (process.env.NODE_ENV !== 'production') {\n validateFnDescriptor('spawn', fnDescriptor);\n }\n\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n return detach(fork.apply(void 0, [fnDescriptor].concat(args)));\n}\nfunction join(taskOrTasks) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n throw new Error('join(...tasks) is not supported any more. Please use join([...tasks]) to join multiple tasks.');\n }\n\n if (array(taskOrTasks)) {\n taskOrTasks.forEach(function (t) {\n check(t, task, \"join([...tasks]): argument \" + t + \" is not a valid Task object \" + TEST_HINT);\n });\n } else {\n check(taskOrTasks, task, \"join(task): argument \" + taskOrTasks + \" is not a valid Task object \" + TEST_HINT);\n }\n }\n\n return makeEffect(JOIN, taskOrTasks);\n}\nfunction cancel(taskOrTasks) {\n if (taskOrTasks === void 0) {\n taskOrTasks = SELF_CANCELLATION;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n throw new Error('cancel(...tasks) is not supported any more. Please use cancel([...tasks]) to cancel multiple tasks.');\n }\n\n if (array(taskOrTasks)) {\n taskOrTasks.forEach(function (t) {\n check(t, task, \"cancel([...tasks]): argument \" + t + \" is not a valid Task object \" + TEST_HINT);\n });\n } else if (taskOrTasks !== SELF_CANCELLATION && notUndef(taskOrTasks)) {\n check(taskOrTasks, task, \"cancel(task): argument \" + taskOrTasks + \" is not a valid Task object \" + TEST_HINT);\n }\n }\n\n return makeEffect(CANCEL, taskOrTasks);\n}\nfunction select(selector) {\n if (selector === void 0) {\n selector = identity;\n }\n\n for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n\n if (process.env.NODE_ENV !== 'production' && arguments.length) {\n check(arguments[0], notUndef, 'select(selector, [...]): argument selector is undefined');\n check(selector, func, \"select(selector, [...]): argument \" + selector + \" is not a function\");\n }\n\n return makeEffect(SELECT, {\n selector: selector,\n args: args\n });\n}\n/**\n channel(pattern, [buffer]) => creates a proxy channel for store actions\n**/\n\nfunction actionChannel(pattern$1, buffer$1) {\n if (process.env.NODE_ENV !== 'production') {\n check(pattern$1, pattern, 'actionChannel(pattern,...): argument pattern is not valid');\n\n if (arguments.length > 1) {\n check(buffer$1, notUndef, 'actionChannel(pattern, buffer): argument buffer is undefined');\n check(buffer$1, buffer, \"actionChannel(pattern, buffer): argument \" + buffer$1 + \" is not a valid buffer\");\n }\n }\n\n return makeEffect(ACTION_CHANNEL, {\n pattern: pattern$1,\n buffer: buffer$1\n });\n}\nfunction cancelled() {\n return makeEffect(CANCELLED, {});\n}\nfunction flush(channel$1) {\n if (process.env.NODE_ENV !== 'production') {\n check(channel$1, channel, \"flush(channel): argument \" + channel$1 + \" is not valid channel\");\n }\n\n return makeEffect(FLUSH, channel$1);\n}\nfunction getContext(prop) {\n if (process.env.NODE_ENV !== 'production') {\n check(prop, string, \"getContext(prop): argument \" + prop + \" is not a string\");\n }\n\n return makeEffect(GET_CONTEXT, prop);\n}\nfunction setContext(props) {\n if (process.env.NODE_ENV !== 'production') {\n check(props, object, createSetContextWarning(null, props));\n }\n\n return makeEffect(SET_CONTEXT, props);\n}\nvar delay =\n/*#__PURE__*/\ncall.bind(null, delayP);\n\nexport { all as $, ALL as A, compose as B, CALL as C, logError as D, wrapSagaDispatch as E, FORK as F, GET_CONTEXT as G, identity as H, buffers as I, JOIN as J, detach as K, take as L, fork as M, cancel as N, call as O, PUT as P, delay as Q, RACE as R, SELECT as S, TAKE as T, actionChannel as U, sliding as V, race as W, effectTypes as X, takeMaybe as Y, put as Z, putResolve as _, CPS as a, apply as a0, cps as a1, spawn as a2, join as a3, select as a4, cancelled as a5, flush as a6, getContext as a7, setContext as a8, CANCEL as b, check as c, ACTION_CHANNEL as d, expanding as e, CANCELLED as f, FLUSH as g, SET_CONTEXT as h, internalErr as i, getMetaInfo as j, kTrue as k, createAllStyleChildCallbacks as l, createEmptyArray as m, none as n, once as o, assignWithSymbols as p, makeIterator as q, remove as r, shouldComplete as s, noop as t, flatMap as u, getLocation as v, createSetContextWarning as w, asyncIteratorSymbol as x, shouldCancel as y, shouldTerminate as z };\n","function deferred() {\n var def = {};\n def.promise = new Promise(function (resolve, reject) {\n def.resolve = resolve;\n def.reject = reject;\n });\n return def;\n}\nfunction arrayOfDeferred(length) {\n var arr = [];\n\n for (var i = 0; i < length; i++) {\n arr.push(deferred());\n }\n\n return arr;\n}\n\nexport default deferred;\nexport { arrayOfDeferred };\n","import { CHANNEL_END_TYPE, MULTICAST, MATCH, SAGA_ACTION, CANCEL, SELF_CANCELLATION, TERMINATE, TASK, TASK_CANCEL, IO } from '@redux-saga/symbols';\nexport { CANCEL, SAGA_LOCATION } from '@redux-saga/symbols';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport { string as string$1, array as array$1, stringableFunc, func, symbol as symbol$1, buffer, notUndef, promise, iterator, undef, object, channel as channel$1 } from '@redux-saga/is';\nimport { k as kTrue, e as expanding, c as check, o as once, r as remove, n as none, i as internalErr, T as TAKE, P as PUT, A as ALL, R as RACE, C as CALL, a as CPS, F as FORK, J as JOIN, b as CANCEL$1, S as SELECT, d as ACTION_CHANNEL, f as CANCELLED$1, g as FLUSH, G as GET_CONTEXT, h as SET_CONTEXT, j as getMetaInfo, l as createAllStyleChildCallbacks, m as createEmptyArray, p as assignWithSymbols, q as makeIterator, s as shouldComplete, t as noop, u as flatMap, v as getLocation, w as createSetContextWarning, x as asyncIteratorSymbol, y as shouldCancel, z as shouldTerminate, B as compose, D as logError, E as wrapSagaDispatch, H as identity } from './io-22ea0cf9.js';\nexport { I as buffers, K as detach } from './io-22ea0cf9.js';\nimport deferred from '@redux-saga/deferred';\nimport '@redux-saga/delay-p';\n\nvar queue = [];\n/**\n Variable to hold a counting semaphore\n - Incrementing adds a lock and puts the scheduler in a `suspended` state (if it's not\n already suspended)\n - Decrementing releases a lock. Zero locks puts the scheduler in a `released` state. This\n triggers flushing the queued tasks.\n**/\n\nvar semaphore = 0;\n/**\n Executes a task 'atomically'. Tasks scheduled during this execution will be queued\n and flushed after this task has finished (assuming the scheduler endup in a released\n state).\n**/\n\nfunction exec(task) {\n try {\n suspend();\n task();\n } finally {\n release();\n }\n}\n/**\n Executes or queues a task depending on the state of the scheduler (`suspended` or `released`)\n**/\n\n\nfunction asap(task) {\n queue.push(task);\n\n if (!semaphore) {\n suspend();\n flush();\n }\n}\n/**\n * Puts the scheduler in a `suspended` state and executes a task immediately.\n */\n\nfunction immediately(task) {\n try {\n suspend();\n return task();\n } finally {\n flush();\n }\n}\n/**\n Puts the scheduler in a `suspended` state. Scheduled tasks will be queued until the\n scheduler is released.\n**/\n\nfunction suspend() {\n semaphore++;\n}\n/**\n Puts the scheduler in a `released` state.\n**/\n\n\nfunction release() {\n semaphore--;\n}\n/**\n Releases the current lock. Executes all queued tasks if the scheduler is in the released state.\n**/\n\n\nfunction flush() {\n release();\n var task;\n\n while (!semaphore && (task = queue.shift()) !== undefined) {\n exec(task);\n }\n}\n\nvar array = function array(patterns) {\n return function (input) {\n return patterns.some(function (p) {\n return matcher(p)(input);\n });\n };\n};\nvar predicate = function predicate(_predicate) {\n return function (input) {\n return _predicate(input);\n };\n};\nvar string = function string(pattern) {\n return function (input) {\n return input.type === String(pattern);\n };\n};\nvar symbol = function symbol(pattern) {\n return function (input) {\n return input.type === pattern;\n };\n};\nvar wildcard = function wildcard() {\n return kTrue;\n};\nfunction matcher(pattern) {\n // prettier-ignore\n var matcherCreator = pattern === '*' ? wildcard : string$1(pattern) ? string : array$1(pattern) ? array : stringableFunc(pattern) ? string : func(pattern) ? predicate : symbol$1(pattern) ? symbol : null;\n\n if (matcherCreator === null) {\n throw new Error(\"invalid pattern: \" + pattern);\n }\n\n return matcherCreator(pattern);\n}\n\nvar END = {\n type: CHANNEL_END_TYPE\n};\nvar isEnd = function isEnd(a) {\n return a && a.type === CHANNEL_END_TYPE;\n};\nvar CLOSED_CHANNEL_WITH_TAKERS = 'Cannot have a closed channel with pending takers';\nvar INVALID_BUFFER = 'invalid buffer passed to channel factory function';\nvar UNDEFINED_INPUT_ERROR = \"Saga or channel was provided with an undefined action\\nHints:\\n - check that your Action Creator returns a non-undefined value\\n - if the Saga was started using runSaga, check that your subscribe source provides the action to its listeners\";\nfunction channel(buffer$1) {\n if (buffer$1 === void 0) {\n buffer$1 = expanding();\n }\n\n var closed = false;\n var takers = [];\n\n if (process.env.NODE_ENV !== 'production') {\n check(buffer$1, buffer, INVALID_BUFFER);\n }\n\n function checkForbiddenStates() {\n if (closed && takers.length) {\n throw internalErr(CLOSED_CHANNEL_WITH_TAKERS);\n }\n\n if (takers.length && !buffer$1.isEmpty()) {\n throw internalErr('Cannot have pending takers with non empty buffer');\n }\n }\n\n function put(input) {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n check(input, notUndef, UNDEFINED_INPUT_ERROR);\n }\n\n if (closed) {\n return;\n }\n\n if (takers.length === 0) {\n return buffer$1.put(input);\n }\n\n var cb = takers.shift();\n cb(input);\n }\n\n function take(cb) {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n check(cb, func, \"channel.take's callback must be a function\");\n }\n\n if (closed && buffer$1.isEmpty()) {\n cb(END);\n } else if (!buffer$1.isEmpty()) {\n cb(buffer$1.take());\n } else {\n takers.push(cb);\n\n cb.cancel = function () {\n remove(takers, cb);\n };\n }\n }\n\n function flush(cb) {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n check(cb, func, \"channel.flush' callback must be a function\");\n }\n\n if (closed && buffer$1.isEmpty()) {\n cb(END);\n return;\n }\n\n cb(buffer$1.flush());\n }\n\n function close() {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n }\n\n if (closed) {\n return;\n }\n\n closed = true;\n var arr = takers;\n takers = [];\n\n for (var i = 0, len = arr.length; i < len; i++) {\n var taker = arr[i];\n taker(END);\n }\n }\n\n return {\n take: take,\n put: put,\n flush: flush,\n close: close\n };\n}\nfunction eventChannel(subscribe, buffer) {\n if (buffer === void 0) {\n buffer = none();\n }\n\n var closed = false;\n var unsubscribe;\n var chan = channel(buffer);\n\n var close = function close() {\n if (closed) {\n return;\n }\n\n closed = true;\n\n if (func(unsubscribe)) {\n unsubscribe();\n }\n\n chan.close();\n };\n\n unsubscribe = subscribe(function (input) {\n if (isEnd(input)) {\n close();\n return;\n }\n\n chan.put(input);\n });\n\n if (process.env.NODE_ENV !== 'production') {\n check(unsubscribe, func, 'in eventChannel: subscribe should return a function to unsubscribe');\n }\n\n unsubscribe = once(unsubscribe);\n\n if (closed) {\n unsubscribe();\n }\n\n return {\n take: chan.take,\n flush: chan.flush,\n close: close\n };\n}\nfunction multicastChannel() {\n var _ref;\n\n var closed = false;\n var currentTakers = [];\n var nextTakers = currentTakers;\n\n function checkForbiddenStates() {\n if (closed && nextTakers.length) {\n throw internalErr(CLOSED_CHANNEL_WITH_TAKERS);\n }\n }\n\n var ensureCanMutateNextTakers = function ensureCanMutateNextTakers() {\n if (nextTakers !== currentTakers) {\n return;\n }\n\n nextTakers = currentTakers.slice();\n };\n\n var close = function close() {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n }\n\n closed = true;\n var takers = currentTakers = nextTakers;\n nextTakers = [];\n takers.forEach(function (taker) {\n taker(END);\n });\n };\n\n return _ref = {}, _ref[MULTICAST] = true, _ref.put = function put(input) {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n check(input, notUndef, UNDEFINED_INPUT_ERROR);\n }\n\n if (closed) {\n return;\n }\n\n if (isEnd(input)) {\n close();\n return;\n }\n\n var takers = currentTakers = nextTakers;\n\n for (var i = 0, len = takers.length; i < len; i++) {\n var taker = takers[i];\n\n if (taker[MATCH](input)) {\n taker.cancel();\n taker(input);\n }\n }\n }, _ref.take = function take(cb, matcher) {\n if (matcher === void 0) {\n matcher = wildcard;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n }\n\n if (closed) {\n cb(END);\n return;\n }\n\n cb[MATCH] = matcher;\n ensureCanMutateNextTakers();\n nextTakers.push(cb);\n cb.cancel = once(function () {\n ensureCanMutateNextTakers();\n remove(nextTakers, cb);\n });\n }, _ref.close = close, _ref;\n}\nfunction stdChannel() {\n var chan = multicastChannel();\n var put = chan.put;\n\n chan.put = function (input) {\n if (input[SAGA_ACTION]) {\n put(input);\n return;\n }\n\n asap(function () {\n put(input);\n });\n };\n\n return chan;\n}\n\nvar RUNNING = 0;\nvar CANCELLED = 1;\nvar ABORTED = 2;\nvar DONE = 3;\n\nfunction resolvePromise(promise, cb) {\n var cancelPromise = promise[CANCEL];\n\n if (func(cancelPromise)) {\n cb.cancel = cancelPromise;\n }\n\n promise.then(cb, function (error) {\n cb(error, true);\n });\n}\n\nvar current = 0;\nvar nextSagaId = (function () {\n return ++current;\n});\n\nvar _effectRunnerMap;\n\nfunction getIteratorMetaInfo(iterator, fn) {\n if (iterator.isSagaIterator) {\n return {\n name: iterator.meta.name\n };\n }\n\n return getMetaInfo(fn);\n}\n\nfunction createTaskIterator(_ref) {\n var context = _ref.context,\n fn = _ref.fn,\n args = _ref.args;\n\n // catch synchronous failures; see #152 and #441\n try {\n var result = fn.apply(context, args); // i.e. a generator function returns an iterator\n\n if (iterator(result)) {\n return result;\n }\n\n var resolved = false;\n\n var next = function next(arg) {\n if (!resolved) {\n resolved = true; // Only promises returned from fork will be interpreted. See #1573\n\n return {\n value: result,\n done: !promise(result)\n };\n } else {\n return {\n value: arg,\n done: true\n };\n }\n };\n\n return makeIterator(next);\n } catch (err) {\n // do not bubble up synchronous failures for detached forks\n // instead create a failed task. See #152 and #441\n return makeIterator(function () {\n throw err;\n });\n }\n}\n\nfunction runPutEffect(env, _ref2, cb) {\n var channel = _ref2.channel,\n action = _ref2.action,\n resolve = _ref2.resolve;\n\n /**\n Schedule the put in case another saga is holding a lock.\n The put will be executed atomically. ie nested puts will execute after\n this put has terminated.\n **/\n asap(function () {\n var result;\n\n try {\n result = (channel ? channel.put : env.dispatch)(action);\n } catch (error) {\n cb(error, true);\n return;\n }\n\n if (resolve && promise(result)) {\n resolvePromise(result, cb);\n } else {\n cb(result);\n }\n }); // Put effects are non cancellables\n}\n\nfunction runTakeEffect(env, _ref3, cb) {\n var _ref3$channel = _ref3.channel,\n channel = _ref3$channel === void 0 ? env.channel : _ref3$channel,\n pattern = _ref3.pattern,\n maybe = _ref3.maybe;\n\n var takeCb = function takeCb(input) {\n if (input instanceof Error) {\n cb(input, true);\n return;\n }\n\n if (isEnd(input) && !maybe) {\n cb(TERMINATE);\n return;\n }\n\n cb(input);\n };\n\n try {\n channel.take(takeCb, notUndef(pattern) ? matcher(pattern) : null);\n } catch (err) {\n cb(err, true);\n return;\n }\n\n cb.cancel = takeCb.cancel;\n}\n\nfunction runCallEffect(env, _ref4, cb, _ref5) {\n var context = _ref4.context,\n fn = _ref4.fn,\n args = _ref4.args;\n var task = _ref5.task;\n\n // catch synchronous failures; see #152\n try {\n var result = fn.apply(context, args);\n\n if (promise(result)) {\n resolvePromise(result, cb);\n return;\n }\n\n if (iterator(result)) {\n // resolve iterator\n proc(env, result, task.context, current, getMetaInfo(fn),\n /* isRoot */\n false, cb);\n return;\n }\n\n cb(result);\n } catch (error) {\n cb(error, true);\n }\n}\n\nfunction runCPSEffect(env, _ref6, cb) {\n var context = _ref6.context,\n fn = _ref6.fn,\n args = _ref6.args;\n\n // CPS (ie node style functions) can define their own cancellation logic\n // by setting cancel field on the cb\n // catch synchronous failures; see #152\n try {\n var cpsCb = function cpsCb(err, res) {\n if (undef(err)) {\n cb(res);\n } else {\n cb(err, true);\n }\n };\n\n fn.apply(context, args.concat(cpsCb));\n\n if (cpsCb.cancel) {\n cb.cancel = cpsCb.cancel;\n }\n } catch (error) {\n cb(error, true);\n }\n}\n\nfunction runForkEffect(env, _ref7, cb, _ref8) {\n var context = _ref7.context,\n fn = _ref7.fn,\n args = _ref7.args,\n detached = _ref7.detached;\n var parent = _ref8.task;\n var taskIterator = createTaskIterator({\n context: context,\n fn: fn,\n args: args\n });\n var meta = getIteratorMetaInfo(taskIterator, fn);\n immediately(function () {\n var child = proc(env, taskIterator, parent.context, current, meta, detached, undefined);\n\n if (detached) {\n cb(child);\n } else {\n if (child.isRunning()) {\n parent.queue.addTask(child);\n cb(child);\n } else if (child.isAborted()) {\n parent.queue.abort(child.error());\n } else {\n cb(child);\n }\n }\n }); // Fork effects are non cancellables\n}\n\nfunction runJoinEffect(env, taskOrTasks, cb, _ref9) {\n var task = _ref9.task;\n\n var joinSingleTask = function joinSingleTask(taskToJoin, cb) {\n if (taskToJoin.isRunning()) {\n var joiner = {\n task: task,\n cb: cb\n };\n\n cb.cancel = function () {\n if (taskToJoin.isRunning()) remove(taskToJoin.joiners, joiner);\n };\n\n taskToJoin.joiners.push(joiner);\n } else {\n if (taskToJoin.isAborted()) {\n cb(taskToJoin.error(), true);\n } else {\n cb(taskToJoin.result());\n }\n }\n };\n\n if (array$1(taskOrTasks)) {\n if (taskOrTasks.length === 0) {\n cb([]);\n return;\n }\n\n var childCallbacks = createAllStyleChildCallbacks(taskOrTasks, cb);\n taskOrTasks.forEach(function (t, i) {\n joinSingleTask(t, childCallbacks[i]);\n });\n } else {\n joinSingleTask(taskOrTasks, cb);\n }\n}\n\nfunction cancelSingleTask(taskToCancel) {\n if (taskToCancel.isRunning()) {\n taskToCancel.cancel();\n }\n}\n\nfunction runCancelEffect(env, taskOrTasks, cb, _ref10) {\n var task = _ref10.task;\n\n if (taskOrTasks === SELF_CANCELLATION) {\n cancelSingleTask(task);\n } else if (array$1(taskOrTasks)) {\n taskOrTasks.forEach(cancelSingleTask);\n } else {\n cancelSingleTask(taskOrTasks);\n }\n\n cb(); // cancel effects are non cancellables\n}\n\nfunction runAllEffect(env, effects, cb, _ref11) {\n var digestEffect = _ref11.digestEffect;\n var effectId = current;\n var keys = Object.keys(effects);\n\n if (keys.length === 0) {\n cb(array$1(effects) ? [] : {});\n return;\n }\n\n var childCallbacks = createAllStyleChildCallbacks(effects, cb);\n keys.forEach(function (key) {\n digestEffect(effects[key], effectId, childCallbacks[key], key);\n });\n}\n\nfunction runRaceEffect(env, effects, cb, _ref12) {\n var digestEffect = _ref12.digestEffect;\n var effectId = current;\n var keys = Object.keys(effects);\n var response = array$1(effects) ? createEmptyArray(keys.length) : {};\n var childCbs = {};\n var completed = false;\n keys.forEach(function (key) {\n var chCbAtKey = function chCbAtKey(res, isErr) {\n if (completed) {\n return;\n }\n\n if (isErr || shouldComplete(res)) {\n // Race Auto cancellation\n cb.cancel();\n cb(res, isErr);\n } else {\n cb.cancel();\n completed = true;\n response[key] = res;\n cb(response);\n }\n };\n\n chCbAtKey.cancel = noop;\n childCbs[key] = chCbAtKey;\n });\n\n cb.cancel = function () {\n // prevents unnecessary cancellation\n if (!completed) {\n completed = true;\n keys.forEach(function (key) {\n return childCbs[key].cancel();\n });\n }\n };\n\n keys.forEach(function (key) {\n if (completed) {\n return;\n }\n\n digestEffect(effects[key], effectId, childCbs[key], key);\n });\n}\n\nfunction runSelectEffect(env, _ref13, cb) {\n var selector = _ref13.selector,\n args = _ref13.args;\n\n try {\n var state = selector.apply(void 0, [env.getState()].concat(args));\n cb(state);\n } catch (error) {\n cb(error, true);\n }\n}\n\nfunction runChannelEffect(env, _ref14, cb) {\n var pattern = _ref14.pattern,\n buffer = _ref14.buffer;\n var chan = channel(buffer);\n var match = matcher(pattern);\n\n var taker = function taker(action) {\n if (!isEnd(action)) {\n env.channel.take(taker, match);\n }\n\n chan.put(action);\n };\n\n var close = chan.close;\n\n chan.close = function () {\n taker.cancel();\n close();\n };\n\n env.channel.take(taker, match);\n cb(chan);\n}\n\nfunction runCancelledEffect(env, data, cb, _ref15) {\n var task = _ref15.task;\n cb(task.isCancelled());\n}\n\nfunction runFlushEffect(env, channel, cb) {\n channel.flush(cb);\n}\n\nfunction runGetContextEffect(env, prop, cb, _ref16) {\n var task = _ref16.task;\n cb(task.context[prop]);\n}\n\nfunction runSetContextEffect(env, props, cb, _ref17) {\n var task = _ref17.task;\n assignWithSymbols(task.context, props);\n cb();\n}\n\nvar effectRunnerMap = (_effectRunnerMap = {}, _effectRunnerMap[TAKE] = runTakeEffect, _effectRunnerMap[PUT] = runPutEffect, _effectRunnerMap[ALL] = runAllEffect, _effectRunnerMap[RACE] = runRaceEffect, _effectRunnerMap[CALL] = runCallEffect, _effectRunnerMap[CPS] = runCPSEffect, _effectRunnerMap[FORK] = runForkEffect, _effectRunnerMap[JOIN] = runJoinEffect, _effectRunnerMap[CANCEL$1] = runCancelEffect, _effectRunnerMap[SELECT] = runSelectEffect, _effectRunnerMap[ACTION_CHANNEL] = runChannelEffect, _effectRunnerMap[CANCELLED$1] = runCancelledEffect, _effectRunnerMap[FLUSH] = runFlushEffect, _effectRunnerMap[GET_CONTEXT] = runGetContextEffect, _effectRunnerMap[SET_CONTEXT] = runSetContextEffect, _effectRunnerMap);\n\n/**\n Used to track a parent task and its forks\n In the fork model, forked tasks are attached by default to their parent\n We model this using the concept of Parent task && main Task\n main task is the main flow of the current Generator, the parent tasks is the\n aggregation of the main tasks + all its forked tasks.\n Thus the whole model represents an execution tree with multiple branches (vs the\n linear execution tree in sequential (non parallel) programming)\n\n A parent tasks has the following semantics\n - It completes if all its forks either complete or all cancelled\n - If it's cancelled, all forks are cancelled as well\n - It aborts if any uncaught error bubbles up from forks\n - If it completes, the return value is the one returned by the main task\n **/\n\nfunction forkQueue(mainTask, onAbort, cont) {\n var tasks = [];\n var result;\n var completed = false;\n addTask(mainTask);\n\n var getTasks = function getTasks() {\n return tasks;\n };\n\n function abort(err) {\n onAbort();\n cancelAll();\n cont(err, true);\n }\n\n function addTask(task) {\n tasks.push(task);\n\n task.cont = function (res, isErr) {\n if (completed) {\n return;\n }\n\n remove(tasks, task);\n task.cont = noop;\n\n if (isErr) {\n abort(res);\n } else {\n if (task === mainTask) {\n result = res;\n }\n\n if (!tasks.length) {\n completed = true;\n cont(result);\n }\n }\n };\n }\n\n function cancelAll() {\n if (completed) {\n return;\n }\n\n completed = true;\n tasks.forEach(function (t) {\n t.cont = noop;\n t.cancel();\n });\n tasks = [];\n }\n\n return {\n addTask: addTask,\n cancelAll: cancelAll,\n abort: abort,\n getTasks: getTasks\n };\n}\n\n// there can be only a single saga error created at any given moment\n\nfunction formatLocation(fileName, lineNumber) {\n return fileName + \"?\" + lineNumber;\n}\n\nfunction effectLocationAsString(effect) {\n var location = getLocation(effect);\n\n if (location) {\n var code = location.code,\n fileName = location.fileName,\n lineNumber = location.lineNumber;\n var source = code + \" \" + formatLocation(fileName, lineNumber);\n return source;\n }\n\n return '';\n}\n\nfunction sagaLocationAsString(sagaMeta) {\n var name = sagaMeta.name,\n location = sagaMeta.location;\n\n if (location) {\n return name + \" \" + formatLocation(location.fileName, location.lineNumber);\n }\n\n return name;\n}\n\nfunction cancelledTasksAsString(sagaStack) {\n var cancelledTasks = flatMap(function (i) {\n return i.cancelledTasks;\n }, sagaStack);\n\n if (!cancelledTasks.length) {\n return '';\n }\n\n return ['Tasks cancelled due to error:'].concat(cancelledTasks).join('\\n');\n}\n\nvar crashedEffect = null;\nvar sagaStack = [];\nvar addSagaFrame = function addSagaFrame(frame) {\n frame.crashedEffect = crashedEffect;\n sagaStack.push(frame);\n};\nvar clear = function clear() {\n crashedEffect = null;\n sagaStack.length = 0;\n}; // this sets crashed effect for the soon-to-be-reported saga frame\n// this slightly streatches the singleton nature of this module into wrong direction\n// as it's even less obvious what's the data flow here, but it is what it is for now\n\nvar setCrashedEffect = function setCrashedEffect(effect) {\n crashedEffect = effect;\n};\n/**\n @returns {string}\n\n @example\n The above error occurred in task errorInPutSaga {pathToFile}\n when executing effect put({type: 'REDUCER_ACTION_ERROR_IN_PUT'}) {pathToFile}\n created by fetchSaga {pathToFile}\n created by rootSaga {pathToFile}\n*/\n\nvar toString = function toString() {\n var firstSaga = sagaStack[0],\n otherSagas = sagaStack.slice(1);\n var crashedEffectLocation = firstSaga.crashedEffect ? effectLocationAsString(firstSaga.crashedEffect) : null;\n var errorMessage = \"The above error occurred in task \" + sagaLocationAsString(firstSaga.meta) + (crashedEffectLocation ? \" \\n when executing effect \" + crashedEffectLocation : '');\n return [errorMessage].concat(otherSagas.map(function (s) {\n return \" created by \" + sagaLocationAsString(s.meta);\n }), [cancelledTasksAsString(sagaStack)]).join('\\n');\n};\n\nfunction newTask(env, mainTask, parentContext, parentEffectId, meta, isRoot, cont) {\n var _task;\n\n if (cont === void 0) {\n cont = noop;\n }\n\n var status = RUNNING;\n var taskResult;\n var taskError;\n var deferredEnd = null;\n var cancelledDueToErrorTasks = [];\n var context = Object.create(parentContext);\n var queue = forkQueue(mainTask, function onAbort() {\n cancelledDueToErrorTasks.push.apply(cancelledDueToErrorTasks, queue.getTasks().map(function (t) {\n return t.meta.name;\n }));\n }, end);\n /**\n This may be called by a parent generator to trigger/propagate cancellation\n cancel all pending tasks (including the main task), then end the current task.\n Cancellation propagates down to the whole execution tree held by this Parent task\n It's also propagated to all joiners of this task and their execution tree/joiners\n Cancellation is noop for terminated/Cancelled tasks tasks\n **/\n\n function cancel() {\n if (status === RUNNING) {\n // Setting status to CANCELLED does not necessarily mean that the task/iterators are stopped\n // effects in the iterator's finally block will still be executed\n status = CANCELLED;\n queue.cancelAll(); // Ending with a TASK_CANCEL will propagate the Cancellation to all joiners\n\n end(TASK_CANCEL, false);\n }\n }\n\n function end(result, isErr) {\n if (!isErr) {\n // The status here may be RUNNING or CANCELLED\n // If the status is CANCELLED, then we do not need to change it here\n if (result === TASK_CANCEL) {\n status = CANCELLED;\n } else if (status !== CANCELLED) {\n status = DONE;\n }\n\n taskResult = result;\n deferredEnd && deferredEnd.resolve(result);\n } else {\n status = ABORTED;\n addSagaFrame({\n meta: meta,\n cancelledTasks: cancelledDueToErrorTasks\n });\n\n if (task.isRoot) {\n var sagaStack = toString(); // we've dumped the saga stack to string and are passing it to user's code\n // we know that it won't be needed anymore and we need to clear it\n\n clear();\n env.onError(result, {\n sagaStack: sagaStack\n });\n }\n\n taskError = result;\n deferredEnd && deferredEnd.reject(result);\n }\n\n task.cont(result, isErr);\n task.joiners.forEach(function (joiner) {\n joiner.cb(result, isErr);\n });\n task.joiners = null;\n }\n\n function setContext(props) {\n if (process.env.NODE_ENV !== 'production') {\n check(props, object, createSetContextWarning('task', props));\n }\n\n assignWithSymbols(context, props);\n }\n\n function toPromise() {\n if (deferredEnd) {\n return deferredEnd.promise;\n }\n\n deferredEnd = deferred();\n\n if (status === ABORTED) {\n deferredEnd.reject(taskError);\n } else if (status !== RUNNING) {\n deferredEnd.resolve(taskResult);\n }\n\n return deferredEnd.promise;\n }\n\n var task = (_task = {}, _task[TASK] = true, _task.id = parentEffectId, _task.meta = meta, _task.isRoot = isRoot, _task.context = context, _task.joiners = [], _task.queue = queue, _task.cancel = cancel, _task.cont = cont, _task.end = end, _task.setContext = setContext, _task.toPromise = toPromise, _task.isRunning = function isRunning() {\n return status === RUNNING;\n }, _task.isCancelled = function isCancelled() {\n return status === CANCELLED || status === RUNNING && mainTask.status === CANCELLED;\n }, _task.isAborted = function isAborted() {\n return status === ABORTED;\n }, _task.result = function result() {\n return taskResult;\n }, _task.error = function error() {\n return taskError;\n }, _task);\n return task;\n}\n\nfunction proc(env, iterator$1, parentContext, parentEffectId, meta, isRoot, cont) {\n if (process.env.NODE_ENV !== 'production' && iterator$1[asyncIteratorSymbol]) {\n throw new Error(\"redux-saga doesn't support async generators, please use only regular ones\");\n }\n\n var finalRunEffect = env.finalizeRunEffect(runEffect);\n /**\n Tracks the current effect cancellation\n Each time the generator progresses. calling runEffect will set a new value\n on it. It allows propagating cancellation to child effects\n **/\n\n next.cancel = noop;\n /** Creates a main task to track the main flow */\n\n var mainTask = {\n meta: meta,\n cancel: cancelMain,\n status: RUNNING\n };\n /**\n Creates a new task descriptor for this generator.\n A task is the aggregation of it's mainTask and all it's forked tasks.\n **/\n\n var task = newTask(env, mainTask, parentContext, parentEffectId, meta, isRoot, cont);\n var executingContext = {\n task: task,\n digestEffect: digestEffect\n };\n /**\n cancellation of the main task. We'll simply resume the Generator with a TASK_CANCEL\n **/\n\n function cancelMain() {\n if (mainTask.status === RUNNING) {\n mainTask.status = CANCELLED;\n next(TASK_CANCEL);\n }\n }\n /**\n attaches cancellation logic to this task's continuation\n this will permit cancellation to propagate down the call chain\n **/\n\n\n if (cont) {\n cont.cancel = task.cancel;\n } // kicks up the generator\n\n\n next(); // then return the task descriptor to the caller\n\n return task;\n /**\n * This is the generator driver\n * It's a recursive async/continuation function which calls itself\n * until the generator terminates or throws\n * @param {internal commands(TASK_CANCEL | TERMINATE) | any} arg - value, generator will be resumed with.\n * @param {boolean} isErr - the flag shows if effect finished with an error\n *\n * receives either (command | effect result, false) or (any thrown thing, true)\n */\n\n function next(arg, isErr) {\n try {\n var result;\n\n if (isErr) {\n result = iterator$1.throw(arg); // user handled the error, we can clear bookkept values\n\n clear();\n } else if (shouldCancel(arg)) {\n /**\n getting TASK_CANCEL automatically cancels the main task\n We can get this value here\n - By cancelling the parent task manually\n - By joining a Cancelled task\n **/\n mainTask.status = CANCELLED;\n /**\n Cancels the current effect; this will propagate the cancellation down to any called tasks\n **/\n\n next.cancel();\n /**\n If this Generator has a `return` method then invokes it\n This will jump to the finally block\n **/\n\n result = func(iterator$1.return) ? iterator$1.return(TASK_CANCEL) : {\n done: true,\n value: TASK_CANCEL\n };\n } else if (shouldTerminate(arg)) {\n // We get TERMINATE flag, i.e. by taking from a channel that ended using `take` (and not `takem` used to trap End of channels)\n result = func(iterator$1.return) ? iterator$1.return() : {\n done: true\n };\n } else {\n result = iterator$1.next(arg);\n }\n\n if (!result.done) {\n digestEffect(result.value, parentEffectId, next);\n } else {\n /**\n This Generator has ended, terminate the main task and notify the fork queue\n **/\n if (mainTask.status !== CANCELLED) {\n mainTask.status = DONE;\n }\n\n mainTask.cont(result.value);\n }\n } catch (error) {\n if (mainTask.status === CANCELLED) {\n throw error;\n }\n\n mainTask.status = ABORTED;\n mainTask.cont(error, true);\n }\n }\n\n function runEffect(effect, effectId, currCb) {\n /**\n each effect runner must attach its own logic of cancellation to the provided callback\n it allows this generator to propagate cancellation downward.\n ATTENTION! effect runners must setup the cancel logic by setting cb.cancel = [cancelMethod]\n And the setup must occur before calling the callback\n This is a sort of inversion of control: called async functions are responsible\n of completing the flow by calling the provided continuation; while caller functions\n are responsible for aborting the current flow by calling the attached cancel function\n Library users can attach their own cancellation logic to promises by defining a\n promise[CANCEL] method in their returned promises\n ATTENTION! calling cancel must have no effect on an already completed or cancelled effect\n **/\n if (promise(effect)) {\n resolvePromise(effect, currCb);\n } else if (iterator(effect)) {\n // resolve iterator\n proc(env, effect, task.context, effectId, meta,\n /* isRoot */\n false, currCb);\n } else if (effect && effect[IO]) {\n var effectRunner = effectRunnerMap[effect.type];\n effectRunner(env, effect.payload, currCb, executingContext);\n } else {\n // anything else returned as is\n currCb(effect);\n }\n }\n\n function digestEffect(effect, parentEffectId, cb, label) {\n if (label === void 0) {\n label = '';\n }\n\n var effectId = nextSagaId();\n env.sagaMonitor && env.sagaMonitor.effectTriggered({\n effectId: effectId,\n parentEffectId: parentEffectId,\n label: label,\n effect: effect\n });\n /**\n completion callback and cancel callback are mutually exclusive\n We can't cancel an already completed effect\n And We can't complete an already cancelled effectId\n **/\n\n var effectSettled; // Completion callback passed to the appropriate effect runner\n\n function currCb(res, isErr) {\n if (effectSettled) {\n return;\n }\n\n effectSettled = true;\n cb.cancel = noop; // defensive measure\n\n if (env.sagaMonitor) {\n if (isErr) {\n env.sagaMonitor.effectRejected(effectId, res);\n } else {\n env.sagaMonitor.effectResolved(effectId, res);\n }\n }\n\n if (isErr) {\n setCrashedEffect(effect);\n }\n\n cb(res, isErr);\n } // tracks down the current cancel\n\n\n currCb.cancel = noop; // setup cancellation logic on the parent cb\n\n cb.cancel = function () {\n // prevents cancelling an already completed effect\n if (effectSettled) {\n return;\n }\n\n effectSettled = true;\n currCb.cancel(); // propagates cancel downward\n\n currCb.cancel = noop; // defensive measure\n\n env.sagaMonitor && env.sagaMonitor.effectCancelled(effectId);\n };\n\n finalRunEffect(effect, effectId, currCb);\n }\n}\n\nvar RUN_SAGA_SIGNATURE = 'runSaga(options, saga, ...args)';\nvar NON_GENERATOR_ERR = RUN_SAGA_SIGNATURE + \": saga argument must be a Generator function!\";\nfunction runSaga(_ref, saga) {\n var _ref$channel = _ref.channel,\n channel = _ref$channel === void 0 ? stdChannel() : _ref$channel,\n dispatch = _ref.dispatch,\n getState = _ref.getState,\n _ref$context = _ref.context,\n context = _ref$context === void 0 ? {} : _ref$context,\n sagaMonitor = _ref.sagaMonitor,\n effectMiddlewares = _ref.effectMiddlewares,\n _ref$onError = _ref.onError,\n onError = _ref$onError === void 0 ? logError : _ref$onError;\n\n if (process.env.NODE_ENV !== 'production') {\n check(saga, func, NON_GENERATOR_ERR);\n }\n\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var iterator$1 = saga.apply(void 0, args);\n\n if (process.env.NODE_ENV !== 'production') {\n check(iterator$1, iterator, NON_GENERATOR_ERR);\n }\n\n var effectId = nextSagaId();\n\n if (sagaMonitor) {\n // monitors are expected to have a certain interface, let's fill-in any missing ones\n sagaMonitor.rootSagaStarted = sagaMonitor.rootSagaStarted || noop;\n sagaMonitor.effectTriggered = sagaMonitor.effectTriggered || noop;\n sagaMonitor.effectResolved = sagaMonitor.effectResolved || noop;\n sagaMonitor.effectRejected = sagaMonitor.effectRejected || noop;\n sagaMonitor.effectCancelled = sagaMonitor.effectCancelled || noop;\n sagaMonitor.actionDispatched = sagaMonitor.actionDispatched || noop;\n sagaMonitor.rootSagaStarted({\n effectId: effectId,\n saga: saga,\n args: args\n });\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (notUndef(dispatch)) {\n check(dispatch, func, 'dispatch must be a function');\n }\n\n if (notUndef(getState)) {\n check(getState, func, 'getState must be a function');\n }\n\n if (notUndef(effectMiddlewares)) {\n var MIDDLEWARE_TYPE_ERROR = 'effectMiddlewares must be an array of functions';\n check(effectMiddlewares, array$1, MIDDLEWARE_TYPE_ERROR);\n effectMiddlewares.forEach(function (effectMiddleware) {\n return check(effectMiddleware, func, MIDDLEWARE_TYPE_ERROR);\n });\n }\n\n check(onError, func, 'onError passed to the redux-saga is not a function!');\n }\n\n var finalizeRunEffect;\n\n if (effectMiddlewares) {\n var middleware = compose.apply(void 0, effectMiddlewares);\n\n finalizeRunEffect = function finalizeRunEffect(runEffect) {\n return function (effect, effectId, currCb) {\n var plainRunEffect = function plainRunEffect(eff) {\n return runEffect(eff, effectId, currCb);\n };\n\n return middleware(plainRunEffect)(effect);\n };\n };\n } else {\n finalizeRunEffect = identity;\n }\n\n var env = {\n channel: channel,\n dispatch: wrapSagaDispatch(dispatch),\n getState: getState,\n sagaMonitor: sagaMonitor,\n onError: onError,\n finalizeRunEffect: finalizeRunEffect\n };\n return immediately(function () {\n var task = proc(env, iterator$1, context, effectId, getMetaInfo(saga),\n /* isRoot */\n true, undefined);\n\n if (sagaMonitor) {\n sagaMonitor.effectResolved(effectId, task);\n }\n\n return task;\n });\n}\n\nfunction sagaMiddlewareFactory(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$context = _ref.context,\n context = _ref$context === void 0 ? {} : _ref$context,\n _ref$channel = _ref.channel,\n channel = _ref$channel === void 0 ? stdChannel() : _ref$channel,\n sagaMonitor = _ref.sagaMonitor,\n options = _objectWithoutPropertiesLoose(_ref, [\"context\", \"channel\", \"sagaMonitor\"]);\n\n var boundRunSaga;\n\n if (process.env.NODE_ENV !== 'production') {\n check(channel, channel$1, 'options.channel passed to the Saga middleware is not a channel');\n }\n\n function sagaMiddleware(_ref2) {\n var getState = _ref2.getState,\n dispatch = _ref2.dispatch;\n boundRunSaga = runSaga.bind(null, _extends({}, options, {\n context: context,\n channel: channel,\n dispatch: dispatch,\n getState: getState,\n sagaMonitor: sagaMonitor\n }));\n return function (next) {\n return function (action) {\n if (sagaMonitor && sagaMonitor.actionDispatched) {\n sagaMonitor.actionDispatched(action);\n }\n\n var result = next(action); // hit reducers\n\n channel.put(action);\n return result;\n };\n };\n }\n\n sagaMiddleware.run = function () {\n if (process.env.NODE_ENV !== 'production' && !boundRunSaga) {\n throw new Error('Before running a Saga, you must mount the Saga middleware on the Store using applyMiddleware');\n }\n\n return boundRunSaga.apply(void 0, arguments);\n };\n\n sagaMiddleware.setContext = function (props) {\n if (process.env.NODE_ENV !== 'production') {\n check(props, object, createSetContextWarning('sagaMiddleware', props));\n }\n\n assignWithSymbols(context, props);\n };\n\n return sagaMiddleware;\n}\n\nexport default sagaMiddlewareFactory;\nexport { END, channel, eventChannel, isEnd, multicastChannel, runSaga, stdChannel };\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import createSagaMiddleware__default from '@redux-saga/core';\nexport * from '@redux-saga/core';\n\n\n\nexport default createSagaMiddleware__default;\n","import { applyMiddleware, compose, } from 'redux';\nimport { createLogger, } from 'redux-logger';\n//import thunk from 'redux-thunk';\nimport createSagaMiddleware from 'redux-saga';\nimport { isProduction, } from '../constants';\n\n\n\nexport const sagaMiddleware = createSagaMiddleware();\n\nexport const createEnhancers = (isBrowser = false) => {\n let devTools = false;\n\n const middlewares = [];\n middlewares.push(sagaMiddleware);\n\n if (isBrowser) {\n //middlewares.push(thunk);\n\n if (!isProduction) {\n middlewares.push(createLogger({\n collapsed: true,\n }));\n\n devTools = typeof window === 'object' && window.__REDUX_DEVTOOLS_EXTENSION__\n ? window.__REDUX_DEVTOOLS_EXTENSION__()\n : null;\n }\n }\n\n const enhancers = [];\n enhancers.push(applyMiddleware(...middlewares));\n //if (devTools) enhancers.push(devTools);\n\n return compose(...enhancers);\n}\n\nexport default createEnhancers;\n","export const CLEAR = '@@rehydrate/CLEAR';\nexport const UPDATE = '@@rehydrate/UPDATE';\nexport const REHYDRATED = '@@rehydrate/REHYDRATED';\nexport const SET_PERSIST_REHYDRATE = '@@rehydrate/SET_PERSIST_REHYDRATE';\n\nexport const RESIST_REHYDRATE = 'persist/REHYDRATE';\n","import { setIn } from 'immutable';\nimport * as AT from './actionTypes';\n\n\n\nconst initialState = {\n ref: false,\n theme: false,\n};\n\n\nfunction rehydrateReducer(state = initialState, action = {},) {\n const { type, payload } = action;\n\n switch (type) {\n case AT.CLEAR: {\n return initialState;\n }\n\n case AT.SET_PERSIST_REHYDRATE: {\n return setIn(state, [payload], true);\n }\n\n default:\n return state;\n }\n}\n\nexport default rehydrateReducer;\n","import { setIn } from 'immutable';\nimport * as AT from './actionTypes';\nimport { themeDefault, themes, } from '../../theme';\n\n\n\nconst initialState = {\n theme: themeDefault,\n};\n\n\nfunction mobileMenuReducer(state = initialState, action = {},) {\n const { type, payload } = action;\n\n switch (type) {\n case AT.CLEAR: {\n return initialState;\n }\n\n\n case AT.SET: {\n if (themes.includes(payload)) {\n return setIn(state, ['theme'], payload);\n }\n return state;\n }\n\n default:\n return state;\n }\n}\n\nexport default mobileMenuReducer;\n","import { setIn } from 'immutable';\nimport * as AT from './actionTypes';\n\n\n\nconst initialState = {\n isOpen: false,\n};\n\n\nfunction mobileMenuReducer(state = initialState, action = {},) {\n const { type, payload } = action;\n\n switch (type) {\n case AT.CLEAR: {\n return initialState;\n }\n\n case AT.TOGGLE: {\n /*if (state.isOpen == false) {\n document.body.style.setProperty(\"overflow\", \"hidden\");\n } else {\n document.body.style.setProperty(\"overflow\", \"auto\");\n }*/\n return setIn(state, ['isOpen'], !state.isOpen);\n }\n\n case AT.SET: {\n return setIn(state, ['isOpen'], payload);\n }\n\n default:\n return state;\n }\n}\n\nexport default mobileMenuReducer;\n","import { combineReducers } from 'redux';\nimport { persistReducer } from 'redux-persist';\nimport storage from 'redux-persist/lib/storage';\nimport autoMergeLevel1 from 'redux-persist/lib/stateReconciler/autoMergeLevel1';\nimport rehydrate from './rehydrate/reducers';\nimport theme from './theme/reducers';\nimport mobileMenu from './mobileMenu/reducers';\n\n\nexport const createRootReducer = () => {\n const rootReducer = combineReducers({\n rehydrate,\n theme: persistReducer({ key: 'theme', storage: storage, stateReconciler: autoMergeLevel1, }, theme),\n mobileMenu,\n });\n\n return rootReducer;\n};\n\nexport default createRootReducer;\n","import '@redux-saga/symbols';\nimport '@babel/runtime/helpers/esm/extends';\nimport { channel, stringableFunc, func, notUndef } from '@redux-saga/is';\nimport { q as makeIterator, L as take, M as fork, N as cancel, O as call, Q as delay, U as actionChannel, V as sliding, W as race, c as check } from './io-22ea0cf9.js';\nexport { U as actionChannel, $ as all, a0 as apply, O as call, N as cancel, a5 as cancelled, a1 as cps, Q as delay, X as effectTypes, a6 as flush, M as fork, a7 as getContext, a3 as join, Z as put, _ as putResolve, W as race, a4 as select, a8 as setContext, a2 as spawn, L as take, Y as takeMaybe } from './io-22ea0cf9.js';\nimport '@redux-saga/delay-p';\n\nvar done = function done(value) {\n return {\n done: true,\n value: value\n };\n};\n\nvar qEnd = {};\nfunction safeName(patternOrChannel) {\n if (channel(patternOrChannel)) {\n return 'channel';\n }\n\n if (stringableFunc(patternOrChannel)) {\n return String(patternOrChannel);\n }\n\n if (func(patternOrChannel)) {\n return patternOrChannel.name;\n }\n\n return String(patternOrChannel);\n}\nfunction fsmIterator(fsm, startState, name) {\n var stateUpdater,\n errorState,\n effect,\n nextState = startState;\n\n function next(arg, error) {\n if (nextState === qEnd) {\n return done(arg);\n }\n\n if (error && !errorState) {\n nextState = qEnd;\n throw error;\n } else {\n stateUpdater && stateUpdater(arg);\n var currentState = error ? fsm[errorState](error) : fsm[nextState]();\n nextState = currentState.nextState;\n effect = currentState.effect;\n stateUpdater = currentState.stateUpdater;\n errorState = currentState.errorState;\n return nextState === qEnd ? done(arg) : effect;\n }\n }\n\n return makeIterator(next, function (error) {\n return next(null, error);\n }, name);\n}\n\nfunction takeEvery(patternOrChannel, worker) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var yTake = {\n done: false,\n value: take(patternOrChannel)\n };\n\n var yFork = function yFork(ac) {\n return {\n done: false,\n value: fork.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var action,\n setAction = function setAction(ac) {\n return action = ac;\n };\n\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yTake,\n stateUpdater: setAction\n };\n },\n q2: function q2() {\n return {\n nextState: 'q1',\n effect: yFork(action)\n };\n }\n }, 'q1', \"takeEvery(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nfunction takeLatest(patternOrChannel, worker) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var yTake = {\n done: false,\n value: take(patternOrChannel)\n };\n\n var yFork = function yFork(ac) {\n return {\n done: false,\n value: fork.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var yCancel = function yCancel(task) {\n return {\n done: false,\n value: cancel(task)\n };\n };\n\n var task, action;\n\n var setTask = function setTask(t) {\n return task = t;\n };\n\n var setAction = function setAction(ac) {\n return action = ac;\n };\n\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yTake,\n stateUpdater: setAction\n };\n },\n q2: function q2() {\n return task ? {\n nextState: 'q3',\n effect: yCancel(task)\n } : {\n nextState: 'q1',\n effect: yFork(action),\n stateUpdater: setTask\n };\n },\n q3: function q3() {\n return {\n nextState: 'q1',\n effect: yFork(action),\n stateUpdater: setTask\n };\n }\n }, 'q1', \"takeLatest(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nfunction takeLeading(patternOrChannel, worker) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var yTake = {\n done: false,\n value: take(patternOrChannel)\n };\n\n var yCall = function yCall(ac) {\n return {\n done: false,\n value: call.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var action;\n\n var setAction = function setAction(ac) {\n return action = ac;\n };\n\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yTake,\n stateUpdater: setAction\n };\n },\n q2: function q2() {\n return {\n nextState: 'q1',\n effect: yCall(action)\n };\n }\n }, 'q1', \"takeLeading(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nfunction throttle(delayLength, patternOrChannel, worker) {\n for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n args[_key - 3] = arguments[_key];\n }\n\n var action, channel$1;\n\n var yTake = function yTake() {\n return {\n done: false,\n value: take(channel$1)\n };\n };\n\n var yFork = function yFork(ac) {\n return {\n done: false,\n value: fork.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var yDelay = {\n done: false,\n value: delay(delayLength)\n };\n\n var setAction = function setAction(ac) {\n return action = ac;\n };\n\n var setChannel = function setChannel(ch) {\n return channel$1 = ch;\n };\n\n var needsChannel = !channel(patternOrChannel);\n\n if (!needsChannel) {\n setChannel(patternOrChannel);\n }\n\n return fsmIterator({\n q1: function q1() {\n var yActionChannel = {\n done: false,\n value: actionChannel(patternOrChannel, sliding(1))\n };\n return {\n nextState: 'q2',\n effect: yActionChannel,\n stateUpdater: setChannel\n };\n },\n q2: function q2() {\n return {\n nextState: 'q3',\n effect: yTake(),\n stateUpdater: setAction\n };\n },\n q3: function q3() {\n return {\n nextState: 'q4',\n effect: yFork(action)\n };\n },\n q4: function q4() {\n return {\n nextState: 'q2',\n effect: yDelay\n };\n }\n }, needsChannel ? 'q1' : 'q2', \"throttle(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nfunction retry(maxTries, delayLength, fn) {\n var counter = maxTries;\n\n for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n args[_key - 3] = arguments[_key];\n }\n\n var yCall = {\n done: false,\n value: call.apply(void 0, [fn].concat(args))\n };\n var yDelay = {\n done: false,\n value: delay(delayLength)\n };\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yCall,\n errorState: 'q10'\n };\n },\n q2: function q2() {\n return {\n nextState: qEnd\n };\n },\n q10: function q10(error) {\n counter -= 1;\n\n if (counter <= 0) {\n throw error;\n }\n\n return {\n nextState: 'q1',\n effect: yDelay\n };\n }\n }, 'q1', \"retry(\" + fn.name + \")\");\n}\n\nfunction debounceHelper(delayLength, patternOrChannel, worker) {\n for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n args[_key - 3] = arguments[_key];\n }\n\n var action, raceOutput;\n var yTake = {\n done: false,\n value: take(patternOrChannel)\n };\n var yRace = {\n done: false,\n value: race({\n action: take(patternOrChannel),\n debounce: delay(delayLength)\n })\n };\n\n var yFork = function yFork(ac) {\n return {\n done: false,\n value: fork.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var yNoop = function yNoop(value) {\n return {\n done: false,\n value: value\n };\n };\n\n var setAction = function setAction(ac) {\n return action = ac;\n };\n\n var setRaceOutput = function setRaceOutput(ro) {\n return raceOutput = ro;\n };\n\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yTake,\n stateUpdater: setAction\n };\n },\n q2: function q2() {\n return {\n nextState: 'q3',\n effect: yRace,\n stateUpdater: setRaceOutput\n };\n },\n q3: function q3() {\n return raceOutput.debounce ? {\n nextState: 'q1',\n effect: yFork(action)\n } : {\n nextState: 'q2',\n effect: yNoop(raceOutput.action),\n stateUpdater: setAction\n };\n }\n }, 'q1', \"debounce(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nvar validateTakeEffect = function validateTakeEffect(fn, patternOrChannel, worker) {\n check(patternOrChannel, notUndef, fn.name + \" requires a pattern or channel\");\n check(worker, notUndef, fn.name + \" requires a saga parameter\");\n};\n\nfunction takeEvery$1(patternOrChannel, worker) {\n if (process.env.NODE_ENV !== 'production') {\n validateTakeEffect(takeEvery$1, patternOrChannel, worker);\n }\n\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n return fork.apply(void 0, [takeEvery, patternOrChannel, worker].concat(args));\n}\nfunction takeLatest$1(patternOrChannel, worker) {\n if (process.env.NODE_ENV !== 'production') {\n validateTakeEffect(takeLatest$1, patternOrChannel, worker);\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n return fork.apply(void 0, [takeLatest, patternOrChannel, worker].concat(args));\n}\nfunction takeLeading$1(patternOrChannel, worker) {\n if (process.env.NODE_ENV !== 'production') {\n validateTakeEffect(takeLeading$1, patternOrChannel, worker);\n }\n\n for (var _len3 = arguments.length, args = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n args[_key3 - 2] = arguments[_key3];\n }\n\n return fork.apply(void 0, [takeLeading, patternOrChannel, worker].concat(args));\n}\nfunction throttle$1(ms, patternOrChannel, worker) {\n if (process.env.NODE_ENV !== 'production') {\n check(patternOrChannel, notUndef, \"throttle requires a pattern or channel\");\n check(worker, notUndef, 'throttle requires a saga parameter');\n }\n\n for (var _len4 = arguments.length, args = new Array(_len4 > 3 ? _len4 - 3 : 0), _key4 = 3; _key4 < _len4; _key4++) {\n args[_key4 - 3] = arguments[_key4];\n }\n\n return fork.apply(void 0, [throttle, ms, patternOrChannel, worker].concat(args));\n}\nfunction retry$1(maxTries, delayLength, worker) {\n for (var _len5 = arguments.length, args = new Array(_len5 > 3 ? _len5 - 3 : 0), _key5 = 3; _key5 < _len5; _key5++) {\n args[_key5 - 3] = arguments[_key5];\n }\n\n return call.apply(void 0, [retry, maxTries, delayLength, worker].concat(args));\n}\nfunction debounce(delayLength, pattern, worker) {\n for (var _len6 = arguments.length, args = new Array(_len6 > 3 ? _len6 - 3 : 0), _key6 = 3; _key6 < _len6; _key6++) {\n args[_key6 - 3] = arguments[_key6];\n }\n\n return fork.apply(void 0, [debounceHelper, delayLength, pattern, worker].concat(args));\n}\n\nexport { debounce, retry$1 as retry, takeEvery$1 as takeEvery, takeLatest$1 as takeLatest, takeLeading$1 as takeLeading, throttle$1 as throttle };\n","import { fork, take, call } from 'redux-saga/effects';\n\n\n\nexport const takeFirst = (pattern, saga, ...args) => fork(function* () {\n while (true) {\n const action = yield take(pattern);\n yield call(saga, ...args.concat(action));\n }\n});\n\nexport const newObj = (obj) => {\n return JSON.parse(JSON.stringify((obj)));\n}\n","const root = 'rehydrate';\n\n\nexport const isRehydrated = (state) => {\n let result = true;\n for (let key in state[root]) {\n if (!state[root][key]) {\n result = false;\n }\n }\n return result;\n}\n","import { put, select } from 'redux-saga/effects';\nimport * as A from './actions';\nimport * as S from './selectors';\n\n\n\nconst logLocation = 'sagas/rehydrate/sagas';\n\nexport default () => {\n\n const clearSaga = function* () {\n yield put(A.clear());\n }\n\n const updateSaga = function* (action) {\n try {\n if (action && action.key) {\n yield put(A.setPersistRehydrate(action.key));\n const isRehydrated = yield select(S.isRehydrated);\n if (isRehydrated) {\n yield put(A.rehydrated());\n }\n }\n } catch (error) {\n console.error(logLocation, 'updateSaga()', error);\n }\n }\n\n return {\n clearSaga,\n updateSaga,\n };\n}\n\n","import * as AT from './actionTypes';\n\n\n\nexport const clear = () => ({\n type: AT.CLEAR,\n});\n\nexport const update = () => ({\n type: AT.UPDATE,\n});\n\nexport const setPersistRehydrate = (data) => ({\n type: AT.SET_PERSIST_REHYDRATE,\n payload: data,\n});\n\nexport const rehydrated = () => ({\n type: AT.REHYDRATED,\n});\n","import { takeLatest } from 'redux-saga/effects';\nimport { takeFirst } from '../lib';\nimport * as AT from './actionTypes';\nimport sagas from './sagas';\n\n\n\nexport default () => {\n const {\n clearSaga,\n updateSaga,\n } = sagas();\n\n return function* masksRootSaga() {\n yield takeFirst(AT.CLEAR, clearSaga);\n yield takeLatest(AT.RESIST_REHYDRATE, updateSaga);\n yield takeLatest(AT.UPDATE, updateSaga);\n }\n}\n","import { put, select } from 'redux-saga/effects';\nimport * as A from './actions';\nimport * as S from './selectors';\n\n\n\nconst logLocation = 'sagas/rehydrate/sagas';\n\nexport default () => {\n\n const clearSaga = function* () {\n yield put(A.clear());\n }\n\n return {\n clearSaga,\n };\n}\n\n","import { takeLatest } from 'redux-saga/effects';\nimport { takeFirst } from '../lib';\nimport * as AT from './actionTypes';\nimport sagas from './sagas';\n\n\n\nexport default () => {\n const {\n clearSaga,\n toggleSaga,\n } = sagas();\n\n return function* masksRootSaga() {\n yield takeFirst(AT.CLEAR, clearSaga);\n }\n}\n","import { all, call, fork } from 'redux-saga/effects';\nimport { appVersion, appName } from '../configs';\nimport rehydrateRootSaga from './rehydrate/sagaRegister';\nimport mobileMenuRootSaga from './mobileMenu/sagaRegister';\n\n\n\nconst logLocation = 'sagas/rootSaga';\n\nexport default function* rootSaga(fullApi) {\n const sagas = [\n call(welcomeSaga),\n fork(rehydrateRootSaga()),\n fork(mobileMenuRootSaga()),\n ];\n\n yield all(sagas);\n}\n\nfunction* welcomeSaga() {\n try {\n const style1 = 'background: white; color: black; font-size: 48px;';\n const style2 = 'font-size: 18px;';\n console.log('========================================================================================');\n console.log(`%c Version ${appVersion}`, style2);\n console.log('========================================================================================');\n console.log(`%c ${appName} `, style1);\n console.log('========================================================================================');\n console.log('%c This browser feature is intended for developers.', style2);\n console.log('%c If someone told you to copy-paste something here,', style2);\n console.log('%c it is a scam and will give them access to your money!', style2);\n console.log('========================================================================================');\n } catch (error) {\n console.error(logLocation, 'welcomeSaga()', error);\n }\n yield true;\n}\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.6.7\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const token = '%[a-f0-9]{2}';\nconst singleMatcher = new RegExp('(' + token + ')|([^%]+?)', 'gi');\nconst multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn [decodeURIComponent(components.join(''))];\n\t} catch {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tconst left = components.slice(0, split);\n\tconst right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch {\n\t\tlet tokens = input.match(singleMatcher) || [];\n\n\t\tfor (let i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher) || [];\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tconst replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD',\n\t};\n\n\tlet match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch {\n\t\t\tconst result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tconst entries = Object.keys(replaceMap);\n\n\tfor (const key of entries) {\n\t\t// Replace all decoded components\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nexport default function decodeUriComponent(encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n}\n","export default function splitOnFirst(string, separator) {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (string === '' || separator === '') {\n\t\treturn [];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n}\n","export function includeKeys(object, predicate) {\n\tconst result = {};\n\n\tif (Array.isArray(predicate)) {\n\t\tfor (const key of predicate) {\n\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(object, key);\n\t\t\tif (descriptor?.enumerable) {\n\t\t\t\tObject.defineProperty(result, key, descriptor);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// `Reflect.ownKeys()` is required to retrieve symbol properties\n\t\tfor (const key of Reflect.ownKeys(object)) {\n\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(object, key);\n\t\t\tif (descriptor.enumerable) {\n\t\t\t\tconst value = object[key];\n\t\t\t\tif (predicate(key, value, object)) {\n\t\t\t\t\tObject.defineProperty(result, key, descriptor);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result;\n}\n\nexport function excludeKeys(object, predicate) {\n\tif (Array.isArray(predicate)) {\n\t\tconst set = new Set(predicate);\n\t\treturn includeKeys(object, key => !set.has(key));\n\t}\n\n\treturn includeKeys(object, (key, value, object) => !predicate(key, value, object));\n}\n","import decodeComponent from 'decode-uri-component';\nimport splitOnFirst from 'split-on-first';\nimport {includeKeys} from 'filter-obj';\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\n// eslint-disable-next-line unicorn/prefer-code-point\nconst strictUriEncode = string => encodeURIComponent(string).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result, [encode(key, options), '[', index, ']'].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\t[encode(key, options), '[]'].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[]=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'colon-list-separator': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\t[encode(key, options), ':list='].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), ':list=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator'\n\t\t\t\t? '[]='\n\t\t\t\t: '=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\tencode(key, options),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], value];\n\t\t\t};\n\t\t}\n\n\t\tcase 'colon-list-separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], value];\n\t\t\t};\n\t\t}\n\n\t\tcase 'comma':\n\t\tcase 'separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : (value === null ? value : decode(value, options));\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket-separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null\n\t\t\t\t\t? []\n\t\t\t\t\t: value.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], ...arrayValue];\n\t\t\t};\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...[accumulator[key]].flat(), value];\n\t\t\t};\n\t\t}\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nexport function extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nexport function parse(query, options) {\n\toptions = {\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false,\n\t\t...options,\n\t};\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst returnValue = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn returnValue;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn returnValue;\n\t}\n\n\tfor (const parameter of query.split('&')) {\n\t\tif (parameter === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst parameter_ = options.decode ? parameter.replace(/\\+/g, ' ') : parameter;\n\n\t\tlet [key, value] = splitOnFirst(parameter_, '=');\n\n\t\tif (key === undefined) {\n\t\t\tkey = parameter_;\n\t\t}\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : (['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options));\n\t\tformatter(decode(key, options), value, returnValue);\n\t}\n\n\tfor (const [key, value] of Object.entries(returnValue)) {\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const [key2, value2] of Object.entries(value)) {\n\t\t\t\tvalue[key2] = parseValue(value2, options);\n\t\t\t}\n\t\t} else {\n\t\t\treturnValue[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn returnValue;\n\t}\n\n\t// TODO: Remove the use of `reduce`.\n\t// eslint-disable-next-line unicorn/no-array-reduce\n\treturn (options.sort === true ? Object.keys(returnValue).sort() : Object.keys(returnValue).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = returnValue[key];\n\t\tresult[key] = Boolean(value) && typeof value === 'object' && !Array.isArray(value) ? keysSorter(value) : value;\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexport function stringify(object, options) {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = {encode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',', ...options};\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key]))\n\t\t|| (options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const [key, value] of Object.entries(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = value;\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n}\n\nexport function parseUrl(url, options) {\n\toptions = {\n\t\tdecode: true,\n\t\t...options,\n\t};\n\n\tlet [url_, hash] = splitOnFirst(url, '#');\n\n\tif (url_ === undefined) {\n\t\turl_ = url;\n\t}\n\n\treturn {\n\t\turl: url_?.split('?')?.[0] ?? '',\n\t\tquery: parse(extract(url), options),\n\t\t...(options && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}),\n\t};\n}\n\nexport function stringifyUrl(object, options) {\n\toptions = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true,\n\t\t...options,\n\t};\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = extract(object.url);\n\n\tconst query = {\n\t\t...parse(queryFromUrl, {sort: false}),\n\t\t...object.query,\n\t};\n\n\tlet queryString = stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\tconst urlObjectForFragmentEncode = new URL(url);\n\t\turlObjectForFragmentEncode.hash = object.fragmentIdentifier;\n\t\thash = options[encodeFragmentIdentifier] ? urlObjectForFragmentEncode.hash : `#${object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n}\n\nexport function pick(input, filter, options) {\n\toptions = {\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false,\n\t\t...options,\n\t};\n\n\tconst {url, query, fragmentIdentifier} = parseUrl(input, options);\n\n\treturn stringifyUrl({\n\t\turl,\n\t\tquery: includeKeys(query, filter),\n\t\tfragmentIdentifier,\n\t}, options);\n}\n\nexport function exclude(input, filter, options) {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn pick(input, exclusionFilter, options);\n}\n","import * as queryString from './base.js';\n\nexport default queryString;\n","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import _has from \"./_has.js\"; // Based on https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n\nfunction _objectAssign(target) {\n if (target == null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n var idx = 1;\n var length = arguments.length;\n\n while (idx < length) {\n var source = arguments[idx];\n\n if (source != null) {\n for (var nextKey in source) {\n if (_has(nextKey, source)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n\n idx += 1;\n }\n\n return output;\n}\n\nexport default typeof Object.assign === 'function' ? Object.assign : _objectAssign;","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from \"./_curry1.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","import _objectAssign from \"./internal/_objectAssign.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeRight, R.mergeDeepRight, R.mergeWith, R.mergeWithKey\n * @deprecated since v0.26.0\n * @example\n *\n * R.merge({ 'name': 'fred', 'age': 10 }, { 'age': 40 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const withDefaults = R.merge({x: 0, y: 0});\n * withDefaults({y: 2}); //=> {x: 0, y: 2}\n * @symb R.merge(a, b) = {...a, ...b}\n */\n\nvar merge =\n/*#__PURE__*/\n_curry2(function merge(l, r) {\n return _objectAssign({}, l, r);\n});\n\nexport default merge;","import _objectAssign from \"./internal/_objectAssign.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeLeft, R.mergeDeepRight, R.mergeWith, R.mergeWithKey\n * @example\n *\n * R.mergeRight({ 'name': 'fred', 'age': 10 }, { 'age': 40 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const withDefaults = R.mergeRight({x: 0, y: 0});\n * withDefaults({y: 2}); //=> {x: 0, y: 2}\n * @symb R.mergeRight(a, b) = {...a, ...b}\n */\n\nvar mergeRight =\n/*#__PURE__*/\n_curry2(function mergeRight(l, r) {\n return _objectAssign({}, l, r);\n});\n\nexport default mergeRight;","import _curry1 from \"./_curry1.js\";\nimport _curry2 from \"./_curry2.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n\n case 1:\n return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n });\n\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f3 : _isPlaceholder(a) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _curry1(function (_c) {\n return fn(a, b, _c);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3 : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function (_a, _b) {\n return fn(_a, _b, c);\n }) : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b, c);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b, c);\n }) : _isPlaceholder(c) ? _curry1(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns the second argument if it is not `null`, `undefined` or `NaN`;\n * otherwise the first argument is returned.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {a} default The default value.\n * @param {b} val `val` will be returned instead of `default` unless `val` is `null`, `undefined` or `NaN`.\n * @return {*} The second value if it is not `null`, `undefined` or `NaN`, otherwise the default value\n * @example\n *\n * const defaultTo42 = R.defaultTo(42);\n *\n * defaultTo42(null); //=> 42\n * defaultTo42(undefined); //=> 42\n * defaultTo42(false); //=> false\n * defaultTo42('Ramda'); //=> 'Ramda'\n * // parseInt('string') results in NaN\n * defaultTo42(parseInt('string')); //=> 42\n */\n\nvar defaultTo =\n/*#__PURE__*/\n_curry2(function defaultTo(d, v) {\n return v == null || v !== v ? d : v;\n});\n\nexport default defaultTo;","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nexport default Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};","import _curry2 from \"./internal/_curry2.js\";\nimport _isString from \"./internal/_isString.js\";\n/**\n * Returns the nth element of the given list or string. If n is negative the\n * element at index length + n is returned.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> a | Undefined\n * @sig Number -> String -> String\n * @param {Number} offset\n * @param {*} list\n * @return {*}\n * @example\n *\n * const list = ['foo', 'bar', 'baz', 'quux'];\n * R.nth(1, list); //=> 'bar'\n * R.nth(-1, list); //=> 'quux'\n * R.nth(-99, list); //=> undefined\n *\n * R.nth(2, 'abc'); //=> 'c'\n * R.nth(3, 'abc'); //=> ''\n * @symb R.nth(-1, [a, b, c]) = c\n * @symb R.nth(0, [a, b, c]) = a\n * @symb R.nth(1, [a, b, c]) = b\n */\n\nvar nth =\n/*#__PURE__*/\n_curry2(function nth(offset, list) {\n var idx = offset < 0 ? list.length + offset : offset;\n return _isString(list) ? list.charAt(idx) : list[idx];\n});\n\nexport default nth;","export default function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport nth from \"./nth.js\";\n/**\n * Retrieves the values at given paths of an object.\n *\n * @func\n * @memberOf R\n * @since v0.27.1\n * @category Object\n * @typedefn Idx = [String | Int]\n * @sig [Idx] -> {a} -> [a | Undefined]\n * @param {Array} pathsArray The array of paths to be fetched.\n * @param {Object} obj The object to retrieve the nested properties from.\n * @return {Array} A list consisting of values at paths specified by \"pathsArray\".\n * @see R.path\n * @example\n *\n * R.paths([['a', 'b'], ['p', 0, 'q']], {a: {b: 2}, p: [{q: 3}]}); //=> [2, 3]\n * R.paths([['a', 'b'], ['p', 'r']], {a: {b: 2}, p: [{q: 3}]}); //=> [2, undefined]\n */\n\nvar paths =\n/*#__PURE__*/\n_curry2(function paths(pathsArray, obj) {\n return pathsArray.map(function (paths) {\n var val = obj;\n var idx = 0;\n var p;\n\n while (idx < paths.length) {\n if (val == null) {\n return;\n }\n\n p = paths[idx];\n val = _isInteger(p) ? nth(p, val) : val[p];\n idx += 1;\n }\n\n return val;\n });\n});\n\nexport default paths;","import _curry2 from \"./internal/_curry2.js\";\nimport paths from \"./paths.js\";\n/**\n * Retrieve the value at a given path.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {a} -> a | Undefined\n * @param {Array} path The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path`.\n * @see R.prop, R.nth\n * @example\n *\n * R.path(['a', 'b'], {a: {b: 2}}); //=> 2\n * R.path(['a', 'b'], {c: {b: 2}}); //=> undefined\n * R.path(['a', 'b', 0], {a: {b: [1, 2, 3]}}); //=> 1\n * R.path(['a', 'b', -2], {a: {b: [1, 2, 3]}}); //=> 2\n */\n\nvar path =\n/*#__PURE__*/\n_curry2(function path(pathAr, obj) {\n return paths([pathAr], obj)[0];\n});\n\nexport default path;","import _curry3 from \"./internal/_curry3.js\";\nimport defaultTo from \"./defaultTo.js\";\nimport path from \"./path.js\";\n/**\n * If the given, non-null object has a value at the given path, returns the\n * value at that path. Otherwise returns the provided default value.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig a -> [Idx] -> {a} -> a\n * @param {*} d The default value.\n * @param {Array} p The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path` of the supplied object or the default value.\n * @example\n *\n * R.pathOr('N/A', ['a', 'b'], {a: {b: 2}}); //=> 2\n * R.pathOr('N/A', ['a', 'b'], {c: {b: 2}}); //=> \"N/A\"\n */\n\nvar pathOr =\n/*#__PURE__*/\n_curry3(function pathOr(d, p, obj) {\n return defaultTo(d, path(p, obj));\n});\n\nexport default pathOr;","import _curry2 from \"./internal/_curry2.js\";\nimport path from \"./path.js\";\n/**\n * Returns a function that when supplied an object returns the indicated\n * property of that object, if it exists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig Idx -> {s: a} -> a | Undefined\n * @param {String|Number} p The property name or array index\n * @param {Object} obj The object to query\n * @return {*} The value at `obj.p`.\n * @see R.path, R.nth\n * @example\n *\n * R.prop('x', {x: 100}); //=> 100\n * R.prop('x', {}); //=> undefined\n * R.prop(0, [100]); //=> 100\n * R.compose(R.inc, R.prop('x'))({ x: 3 }) //=> 4\n */\n\nvar prop =\n/*#__PURE__*/\n_curry2(function prop(p, obj) {\n return path([p], obj);\n});\n\nexport default prop;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import axios from 'axios';\nimport queryString from 'query-string';\nimport { merge, mergeRight, path, pathOr, prop } from 'ramda';\nimport { v4 as uuidv4 } from 'uuid';\n\n\n\naxios.defaults.withCredentials = false;\naxios.defaults.timeout = Infinity;\n\n\nexport default ({ apiKey }) => {\n const encodeData = (data, contentType, removeDefaultPostData) => {\n const defaultData = {\n //ct: Date.now(),\n };\n\n const allData = removeDefaultPostData\n ? data\n : merge(defaultData, data);\n\n if (contentType === 'application/x-www-form-urlencoded') {\n return queryString.stringify(allData);\n }\n\n return allData;\n }\n\n\n const getHeaders = (contentType, sessionToken) => {\n let bid = window.localStorage.getItem('bid');\n if (!bid) {\n bid = window.localStorage.setItem('bid', uuidv4());\n }\n const headers = {\n 'Content-Type': contentType,\n 'X-TIME': Date.now(),\n 'X-API-KEY': apiKey,\n 'X-BID': bid,\n };\n\n if (sessionToken)\n headers['Authorization'] = `Bearer ${sessionToken}`;\n\n return headers;\n }\n\n\n const request = ({\n contentType = 'application/x-www-form-urlencoded',\n data,\n endPoint,\n headers,\n method,\n removeDefaultPostData,\n sessionToken,\n url,\n ...options\n }) => {\n const urlNew = `${url}${endPoint}`;\n const dataNew = encodeData(data, contentType, removeDefaultPostData);\n const headersNew = mergeRight(getHeaders(contentType, sessionToken), headers);\n\n return axios\n .request({\n url: urlNew,\n method,\n data: dataNew,\n headers: headersNew,\n ...options\n })\n .catch(error => {\n //console.error('api request error:', error);\n const errorData = pathOr({}, ['response', 'data'], error);\n const status = path(['response', 'status'], error);\n if (typeof errorData === 'string') throw errorData;\n throw merge(errorData, { status });\n })\n .then(prop('data'));\n }\n\n const get = ({\n ignoreQueryParams,\n endPoint,\n data,\n ...options\n }) =>\n request({\n ...options,\n method: 'GET',\n endPoint: ignoreQueryParams\n ? endPoint\n : `${endPoint}?${encodeData(data, 'application/x-www-form-urlencoded')}`,\n });\n const deleteRequest = (options) =>\n request({ method: 'DELETE', ...options });\n const post = (options) =>\n request({ method: 'POST', ...options });\n const put = (options) =>\n request({ method: 'PUT', ...options });\n const patch = (options) =>\n request({ method: 'PATCH', ...options });\n\n return {\n deleteRequest,\n get,\n post,\n put,\n patch,\n };\n}\n","import httpService from './http';\n//import apiAuthorize from './apiAuthorize';\n\n\n\nconst api = ({\n options,\n apiKey,\n /*getAuthCredentials,\n reauthenticate,\n dispatch,*/\n}) => {\n const rootUrl = options.domains.root;\n const apiUrl = options.domains.api;\n const http = httpService({ apiKey, });\n //const authorizedHttp = apiAuthorize(http, getAuthCredentials, reauthenticate);\n\n const baseApi = {\n rootUrl,\n apiUrl,\n ...http,\n /*authorizedGet: authorizedHttp.get,\n authorizedPost: authorizedHttp.post,\n authorizedPut: authorizedHttp.put,\n authorizedPatch: authorizedHttp.patch,\n authorizedDelete: authorizedHttp.deleteRequest,*/\n };\n\n return {\n ...http,\n //...authorizedHttp,\n };\n}\n\nexport default api;\n","import { legacy_createStore as createStore } from 'redux';\nimport { persistStore, persistReducer } from 'redux-persist';\nimport storage from 'redux-persist/lib/storage';\nimport autoMergeLevel1 from 'redux-persist/lib/stateReconciler/autoMergeLevel1';\nimport createEnhancers, { sagaMiddleware } from './enhancers';\nimport createRootReducer from './rootReducer';\nimport rootSaga from './rootSaga';\nimport createApi from '../api';\nimport { apiKey, rootDomain, apiDomain } from '../configs';\nimport { v4 as uuidv4 } from 'uuid';\n//import * as A from './actions';\n\n\n\nconst persistConfig = {\n key: 'store',\n storage: storage,\n whitelist: [],\n stateReconciler: autoMergeLevel1,\n};\n\nconst options = {\n domains: { root: rootDomain, api: apiDomain, },\n};\nconst apiOptions = { apiKey, options, };\nexport let api = createApi({ ...apiOptions, });\n\n\nconst initialState = {};\n\nexport const configureStore = (isBrowser = false, preloadedState = {}) => {\n if (isBrowser) {\n let bid = window.localStorage.getItem('bid');\n if (!bid) {\n bid = window.localStorage.setItem('bid', uuidv4());\n }\n }\n\n const store = createStore(\n persistReducer(persistConfig, createRootReducer()),\n Object.assign({}, initialState, preloadedState),\n createEnhancers(isBrowser),\n );\n\n let persistor = null;\n if (isBrowser) {\n persistor = persistStore(store);\n }\n\n /*api = createApi({\n ...apiOptions,\n dispatch: store.dispatch,\n });*/\n sagaMiddleware.run(rootSaga, { api, options });\n\n return { store, persistor };\n}\n\nexport default configureStore;\n","import wrapWithProvider from \"./wrap-with-provider\"\nexport const wrapRootElement = wrapWithProvider;\n","import React from 'react';\nimport { Provider, } from 'react-redux';\nimport configureStore from '../../src/store';\n\n\n\n// eslint-disable-next-line react/display-name,react/prop-types\nexport default ({ element, }) => {\n // Instantiating store in `wrapRootElement` handler ensures:\n // - there is fresh store for each SSR page\n // - it will be called only once in browser, when React mounts\n //const store = createStore();\n\n const { store, persistor } = configureStore(true, window?.__PRELOADED_STATE__);\n delete window?.__PRELOADED_STATE__;\n\n\n return ({element});\n}\n","import wrapWithProvider from \"./wrap-with-provider\";\nexport const wrapRootElement = wrapWithProvider;\n","import React from 'react';\nimport { ThemeProvider, } from '../../src/theme';\n\n\n\n// eslint-disable-next-line react/display-name,react/prop-types\nexport default ({ element, }) => {\n return (\n \n {element}\n \n );\n}\n","import './CommonButton.scss';\n\nimport React, { useState, useEffect, } from 'react';\n\n\n\nexport default function CommonButton({\n children, className, variant, size, active, onClick, ...rest\n}) {\n const [clsName, setClsName] = useState('button');\n useEffect(() => {\n let clsName = `button`;\n if (className) {\n clsName += ` ${className}`;\n }\n if (variant) {\n clsName += ` button-${variant}`;\n }\n if (size) {\n clsName += ` button-size-${size}`;\n }\n setClsName(clsName);\n }, [className, variant, size]);\n\n return (\n \n {children}\n \n );\n}\n","import React from 'react';\n\n//import { Link as LinkUi } from 'react-router-dom';\nimport { useLocalization, LocalizedLink, LocalesList, } from 'gatsby-theme-i18n';\nimport getExternalLinkProps from '../../utils/getExternalLinkProps';\nimport { LinkProps } from './types';\n\n\n\n\nconst Link = ({ external, href, to, ...props }) => {\n const internalProps = external ? getExternalLinkProps() : {};\n if (external)\n return ;\n else\n return ;\n};\n\nLink.defaultProps = {\n //color: 'primary',\n};\n\nexport default Link;\n","export default function getExternalLinkProps(): { target: string; rel: string } {\n return ({\n target: '_blank',\n rel: 'noreferrer noopener',\n });\n};\n","import React from 'react';\nimport Link from './Link';\n//import { LinkProps } from './types';\n//import OpenNewIcon from '../Svg/Icons/OpenNew';\n\n\n\nconst LinkExternal = ({ children, ...props }) => {\n return (\n \n {children}\n {/**/}\n \n );\n};\n\nexport default LinkExternal;\n","import { isProduction } from './constants';\n\nexport const fbqId = '?';\n\nexport const appVersion = '1.0.0';\nexport const appName = 'IVANNIKOV.PRO';\n\n\nexport const apiKey = '?';\n//export const rootDomain = isProduction ? 'https://ivannikov.pro' : `http://${window.location.hostname}:3000`;\nexport const rootDomain = isProduction ? 'https://ivannikov.pro' : `http://localhost:3000`;\n//export const apiDomain = isProduction ? 'https://api.ivannikov.pro' : `http://${window.location.hostname}:3100`;\nexport const apiDomain = isProduction ? 'https://api.ivannikov.pro' : `http://localhost:3100`;\n\nexport const phoneNumber = '+971 54 331 4282';\nexport const email = 'info@ivannikov.pro';\nexport const telegramUsername = 'ivannikovPro';\n\nexport const youtubeUrl = 'https://www.youtube.com/@ivannikov_pro';\n//export const youtubeUrl = 'https://www.youtube.com/channel/UCicknIHIvrZSqL1ibouQIZg';\n//\n\nexport const facebookUrl = `https://www.facebook.com/ivannikov.pro`;\nexport const instagramUrl = `https://www.instagram.com/ivannikov_pro/`;\nexport const twitterUser = `ivannikov_pro`;\nexport const twitterUrl = `https://twitter.com/${twitterUser}`;\nexport const telegramUrl = 'https://t.me/ivannikov_pro';\nexport const linkedInUrl = 'https://www.linkedin.com/in/an-ivannikov/';\nexport const mediumUrl = 'https://ivannikov-pro.medium.com/'; //'https://medium.com/@ivannikov.pro';\nexport const discordUrl = 'https://discord.gg/?';\n\nexport const roobiniumUrl = 'https://roobinium.io/?utm_source=ivannikovpro&utm_medium=site_bottom_link';\n\nexport const links = {\n en: {\n twitterUsername: 'ivannikov_pro',\n twitter: 'https://twitter.com/ivannikov_pro',\n facebook: 'https://www.facebook.com/ivannikov.pro',\n linkedin: 'https://www.linkedin.com/in/an-ivannikov/',\n\n medium: 'https://ivannikov-pro.medium.com/',\n youtube: 'https://www.youtube.com/@ivannikov_pro',\n instagram: 'https://www.instagram.com/ivannikov_pro/',\n tiktok: 'https://www.tiktok.com/@ivannikov_pro/',\n telegram: 'https://t.me/ivannikov_pro',\n\n flru: 'https://www.fl.ru/users/anivannikov/opinions/',\n\n roobinium: 'https://roobinium.io/',\n },\n ru: {\n twitterUsername: 'ivannikov_pro',\n twitter: 'https://twitter.com/ivannikov_pro',\n facebook: 'https://www.facebook.com/ivannikov.pro',\n linkedin: 'https://www.linkedin.com/in/an-ivannikov/',\n\n medium: 'https://ivannikov-pro.medium.com/', // TODO RU\n youtube: 'https://www.youtube.com/@ivannikov_pro', // TODO RU channel\n instagram: 'https://www.instagram.com/ivannikov_pro_ru/',\n tiktok: 'https://www.tiktok.com/@ivannikov_pro_ru/',\n telegram: 'https://t.me/ivannikov_pro_ru',\n\n flru: 'https://www.fl.ru/users/anivannikov/opinions/',\n\n roobinium: 'https://roobinium.io/ru/',\n },\n\n // TODO другие языки\n};\n","export const CLEAR = '@@mobileMenu/CLEAR';\nexport const TOGGLE = '@@mobileMenu/TOGGLE';\nexport const SET = '@@mobileMenu/SET';\n","import * as AT from './actionTypes';\n\n\n\nexport const clear = () => ({\n type: AT.CLEAR,\n});\n\nexport const toggle = () => ({\n type: AT.TOGGLE,\n});\n\nexport const set = (payload) => ({\n type: AT.SET,\n payload: payload,\n});\n","import { getIn } from 'immutable';\n\n\n\nconst root = 'mobileMenu';\n\n\nexport const isOpen = (state) =>\n getIn(state, [root, 'isOpen'], false);\n","import { getIn } from 'immutable';\n\n\n\nconst root = 'theme';\n\n\nexport const getTheme = (state) =>\n getIn(state, [root, 'theme'], null);\n","export const CLEAR = '@@theme/CLEAR';\nexport const TOGGLE = '@@theme/TOGGLE';\nexport const SET = '@@theme/SET';\n","import * as AT from './actionTypes';\n\n\n\nexport const clear = () => ({\n type: AT.CLEAR,\n});\n\nexport const toggle = () => ({\n type: AT.TOGGLE,\n});\n\nexport const set = (payload) => ({\n type: AT.SET,\n payload: payload,\n});\n","import React, { createContext, useState, useEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport * as S from '../store/selectors';\nimport * as A from '../store/actions';\n\n\n\nexport const themeDefault = 'page_theme_dark';\n\nexport const themes = [themeDefault, 'page_theme_light',];\n\nexport const ThemeContext = createContext({\n theme: themeDefault,\n themes,\n toggleTheme: () => null,\n});\n\nexport const ThemeProvider = ({ children, }) => {\n const [theme, setTheme] = useState(themeDefault);\n const toggleTheme = (nextTheme) => {\n setTheme(nextTheme);\n dispatch(A.theme.set(nextTheme));\n\n if (nextTheme === 'page_theme_dark') {\n document.body.classList.remove('page_theme_light');\n document.body.classList.add('page_theme_dark');\n } else if (nextTheme === 'page_theme_light') {\n document.body.classList.remove('page_theme_dark');\n document.body.classList.add('page_theme_light');\n }\n }\n\n const dispatch = useDispatch();\n const themeInStore = useSelector(S.theme.getTheme);\n useEffect(() => {\n if (themeInStore !== theme) {\n setTheme(themeInStore);\n dispatch(A.theme.set(themeInStore));\n }\n\n if (themeInStore === 'page_theme_dark') {\n document.body.classList.remove('page_theme_light');\n document.body.classList.add('page_theme_dark');\n } else if (themeInStore === 'page_theme_light') {\n document.body.classList.remove('page_theme_dark');\n document.body.classList.add('page_theme_light');\n }\n }, [theme, themeInStore]);\n\n\n return (\n \n {children}\n \n );\n}\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n// Used for setting prototype methods that IE8 chokes on.\nvar DELETE = 'delete';\n\n// Constants describing the size of trie nodes.\nvar SHIFT = 5; // Resulted in best performance after ______?\nvar SIZE = 1 << SHIFT;\nvar MASK = SIZE - 1;\n\n// A consistent shared value representing \"not set\" which equals nothing other\n// than itself, and nothing that could be provided externally.\nvar NOT_SET = {};\n\n// Boolean references, Rough equivalent of `bool &`.\nfunction MakeRef() {\n return { value: false };\n}\n\nfunction SetRef(ref) {\n if (ref) {\n ref.value = true;\n }\n}\n\n// A function which returns a value representing an \"owner\" for transient writes\n// to tries. The return value will only ever equal itself, and will not equal\n// the return of any subsequent call of this function.\nfunction OwnerID() {}\n\nfunction ensureSize(iter) {\n if (iter.size === undefined) {\n iter.size = iter.__iterate(returnTrue);\n }\n return iter.size;\n}\n\nfunction wrapIndex(iter, index) {\n // This implements \"is array index\" which the ECMAString spec defines as:\n //\n // A String property name P is an array index if and only if\n // ToString(ToUint32(P)) is equal to P and ToUint32(P) is not equal\n // to 2^32−1.\n //\n // http://www.ecma-international.org/ecma-262/6.0/#sec-array-exotic-objects\n if (typeof index !== 'number') {\n var uint32Index = index >>> 0; // N >>> 0 is shorthand for ToUint32\n if ('' + uint32Index !== index || uint32Index === 4294967295) {\n return NaN;\n }\n index = uint32Index;\n }\n return index < 0 ? ensureSize(iter) + index : index;\n}\n\nfunction returnTrue() {\n return true;\n}\n\nfunction wholeSlice(begin, end, size) {\n return (\n ((begin === 0 && !isNeg(begin)) ||\n (size !== undefined && begin <= -size)) &&\n (end === undefined || (size !== undefined && end >= size))\n );\n}\n\nfunction resolveBegin(begin, size) {\n return resolveIndex(begin, size, 0);\n}\n\nfunction resolveEnd(end, size) {\n return resolveIndex(end, size, size);\n}\n\nfunction resolveIndex(index, size, defaultIndex) {\n // Sanitize indices using this shorthand for ToInt32(argument)\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32\n return index === undefined\n ? defaultIndex\n : isNeg(index)\n ? size === Infinity\n ? size\n : Math.max(0, size + index) | 0\n : size === undefined || size === index\n ? index\n : Math.min(size, index) | 0;\n}\n\nfunction isNeg(value) {\n // Account for -0 which is negative, but not less than 0.\n return value < 0 || (value === 0 && 1 / value === -Infinity);\n}\n\nexport { DELETE, MASK, MakeRef, NOT_SET, OwnerID, SHIFT, SIZE, SetRef, ensureSize, resolveBegin, resolveEnd, returnTrue, wholeSlice, wrapIndex };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n// Note: value is unchanged to not break immutable-devtools.\nvar IS_COLLECTION_SYMBOL = '@@__IMMUTABLE_ITERABLE__@@';\n\nfunction isCollection(maybeCollection) {\n return Boolean(maybeCollection && maybeCollection[IS_COLLECTION_SYMBOL]);\n}\n\nexport { IS_COLLECTION_SYMBOL, isCollection };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar IS_KEYED_SYMBOL = '@@__IMMUTABLE_KEYED__@@';\n\nfunction isKeyed(maybeKeyed) {\n return Boolean(maybeKeyed && maybeKeyed[IS_KEYED_SYMBOL]);\n}\n\nexport { IS_KEYED_SYMBOL, isKeyed };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar IS_INDEXED_SYMBOL = '@@__IMMUTABLE_INDEXED__@@';\n\nfunction isIndexed(maybeIndexed) {\n return Boolean(maybeIndexed && maybeIndexed[IS_INDEXED_SYMBOL]);\n}\n\nexport { IS_INDEXED_SYMBOL, isIndexed };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { isKeyed } from './isKeyed.js';\nimport { isIndexed } from './isIndexed.js';\n\nfunction isAssociative(maybeAssociative) {\n return isKeyed(maybeAssociative) || isIndexed(maybeAssociative);\n}\n\nexport { isAssociative };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { Seq, KeyedSeq, IndexedSeq, SetSeq } from './Seq.js';\nimport { isCollection } from './predicates/isCollection.js';\nimport { isKeyed } from './predicates/isKeyed.js';\nimport { isIndexed } from './predicates/isIndexed.js';\nimport { isAssociative } from './predicates/isAssociative.js';\n\nvar Collection = function Collection(value) {\n return isCollection(value) ? value : Seq(value);\n};\n\nvar KeyedCollection = /*@__PURE__*/(function (Collection) {\n function KeyedCollection(value) {\n return isKeyed(value) ? value : KeyedSeq(value);\n }\n\n if ( Collection ) KeyedCollection.__proto__ = Collection;\n KeyedCollection.prototype = Object.create( Collection && Collection.prototype );\n KeyedCollection.prototype.constructor = KeyedCollection;\n\n return KeyedCollection;\n}(Collection));\n\nvar IndexedCollection = /*@__PURE__*/(function (Collection) {\n function IndexedCollection(value) {\n return isIndexed(value) ? value : IndexedSeq(value);\n }\n\n if ( Collection ) IndexedCollection.__proto__ = Collection;\n IndexedCollection.prototype = Object.create( Collection && Collection.prototype );\n IndexedCollection.prototype.constructor = IndexedCollection;\n\n return IndexedCollection;\n}(Collection));\n\nvar SetCollection = /*@__PURE__*/(function (Collection) {\n function SetCollection(value) {\n return isCollection(value) && !isAssociative(value) ? value : SetSeq(value);\n }\n\n if ( Collection ) SetCollection.__proto__ = Collection;\n SetCollection.prototype = Object.create( Collection && Collection.prototype );\n SetCollection.prototype.constructor = SetCollection;\n\n return SetCollection;\n}(Collection));\n\nCollection.Keyed = KeyedCollection;\nCollection.Indexed = IndexedCollection;\nCollection.Set = SetCollection;\n\nexport { Collection, IndexedCollection, KeyedCollection, SetCollection };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar IS_SEQ_SYMBOL = '@@__IMMUTABLE_SEQ__@@';\n\nfunction isSeq(maybeSeq) {\n return Boolean(maybeSeq && maybeSeq[IS_SEQ_SYMBOL]);\n}\n\nexport { IS_SEQ_SYMBOL, isSeq };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar IS_RECORD_SYMBOL = '@@__IMMUTABLE_RECORD__@@';\n\nfunction isRecord(maybeRecord) {\n return Boolean(maybeRecord && maybeRecord[IS_RECORD_SYMBOL]);\n}\n\nexport { IS_RECORD_SYMBOL, isRecord };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { isCollection } from './isCollection.js';\nimport { isRecord } from './isRecord.js';\n\nfunction isImmutable(maybeImmutable) {\n return isCollection(maybeImmutable) || isRecord(maybeImmutable);\n}\n\nexport { isImmutable };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar IS_ORDERED_SYMBOL = '@@__IMMUTABLE_ORDERED__@@';\n\nfunction isOrdered(maybeOrdered) {\n return Boolean(maybeOrdered && maybeOrdered[IS_ORDERED_SYMBOL]);\n}\n\nexport { IS_ORDERED_SYMBOL, isOrdered };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar ITERATE_KEYS = 0;\nvar ITERATE_VALUES = 1;\nvar ITERATE_ENTRIES = 2;\n\nvar REAL_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\n\nvar ITERATOR_SYMBOL = REAL_ITERATOR_SYMBOL || FAUX_ITERATOR_SYMBOL;\n\nvar Iterator = function Iterator(next) {\n this.next = next;\n};\n\nIterator.prototype.toString = function toString () {\n return '[Iterator]';\n};\n\nIterator.KEYS = ITERATE_KEYS;\nIterator.VALUES = ITERATE_VALUES;\nIterator.ENTRIES = ITERATE_ENTRIES;\n\nIterator.prototype.inspect = Iterator.prototype.toSource = function () {\n return this.toString();\n};\nIterator.prototype[ITERATOR_SYMBOL] = function () {\n return this;\n};\n\nfunction iteratorValue(type, k, v, iteratorResult) {\n var value = type === 0 ? k : type === 1 ? v : [k, v];\n iteratorResult\n ? (iteratorResult.value = value)\n : (iteratorResult = {\n value: value,\n done: false,\n });\n return iteratorResult;\n}\n\nfunction iteratorDone() {\n return { value: undefined, done: true };\n}\n\nfunction hasIterator(maybeIterable) {\n if (Array.isArray(maybeIterable)) {\n // IE11 trick as it does not support `Symbol.iterator`\n return true;\n }\n\n return !!getIteratorFn(maybeIterable);\n}\n\nfunction isIterator(maybeIterator) {\n return maybeIterator && typeof maybeIterator.next === 'function';\n}\n\nfunction getIterator(iterable) {\n var iteratorFn = getIteratorFn(iterable);\n return iteratorFn && iteratorFn.call(iterable);\n}\n\nfunction getIteratorFn(iterable) {\n var iteratorFn =\n iterable &&\n ((REAL_ITERATOR_SYMBOL && iterable[REAL_ITERATOR_SYMBOL]) ||\n iterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n}\n\nfunction isEntriesIterable(maybeIterable) {\n var iteratorFn = getIteratorFn(maybeIterable);\n return iteratorFn && iteratorFn === maybeIterable.entries;\n}\n\nfunction isKeysIterable(maybeIterable) {\n var iteratorFn = getIteratorFn(maybeIterable);\n return iteratorFn && iteratorFn === maybeIterable.keys;\n}\n\nexport { ITERATE_ENTRIES, ITERATE_KEYS, ITERATE_VALUES, ITERATOR_SYMBOL, Iterator, getIterator, hasIterator, isEntriesIterable, isIterator, isKeysIterable, iteratorDone, iteratorValue };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nexport { hasOwnProperty as default };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nfunction isArrayLike(value) {\n if (Array.isArray(value) || typeof value === 'string') {\n return true;\n }\n\n return (\n value &&\n typeof value === 'object' &&\n Number.isInteger(value.length) &&\n value.length >= 0 &&\n (value.length === 0\n ? // Only {length: 0} is considered Array-like.\n Object.keys(value).length === 1\n : // An object is only Array-like if it has a property where the last value\n // in the array-like may be found (which could be undefined).\n value.hasOwnProperty(value.length - 1))\n );\n}\n\nexport { isArrayLike as default };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { wrapIndex } from './TrieUtils.js';\nimport { Collection } from './Collection.js';\nimport { isSeq, IS_SEQ_SYMBOL } from './predicates/isSeq.js';\nimport { isImmutable } from './predicates/isImmutable.js';\nimport { isCollection } from './predicates/isCollection.js';\nimport { isKeyed } from './predicates/isKeyed.js';\nimport { isAssociative } from './predicates/isAssociative.js';\nimport { isRecord } from './predicates/isRecord.js';\nimport { IS_ORDERED_SYMBOL } from './predicates/isOrdered.js';\nimport { Iterator, iteratorDone, iteratorValue, isEntriesIterable, isKeysIterable, hasIterator, getIterator, isIterator } from './Iterator.js';\nimport hasOwnProperty from './utils/hasOwnProperty.js';\nimport isArrayLike from './utils/isArrayLike.js';\n\nvar Seq = /*@__PURE__*/(function (Collection) {\n function Seq(value) {\n return value === undefined || value === null\n ? emptySequence()\n : isImmutable(value)\n ? value.toSeq()\n : seqFromValue(value);\n }\n\n if ( Collection ) Seq.__proto__ = Collection;\n Seq.prototype = Object.create( Collection && Collection.prototype );\n Seq.prototype.constructor = Seq;\n\n Seq.prototype.toSeq = function toSeq () {\n return this;\n };\n\n Seq.prototype.toString = function toString () {\n return this.__toString('Seq {', '}');\n };\n\n Seq.prototype.cacheResult = function cacheResult () {\n if (!this._cache && this.__iterateUncached) {\n this._cache = this.entrySeq().toArray();\n this.size = this._cache.length;\n }\n return this;\n };\n\n // abstract __iterateUncached(fn, reverse)\n\n Seq.prototype.__iterate = function __iterate (fn, reverse) {\n var cache = this._cache;\n if (cache) {\n var size = cache.length;\n var i = 0;\n while (i !== size) {\n var entry = cache[reverse ? size - ++i : i++];\n if (fn(entry[1], entry[0], this) === false) {\n break;\n }\n }\n return i;\n }\n return this.__iterateUncached(fn, reverse);\n };\n\n // abstract __iteratorUncached(type, reverse)\n\n Seq.prototype.__iterator = function __iterator (type, reverse) {\n var cache = this._cache;\n if (cache) {\n var size = cache.length;\n var i = 0;\n return new Iterator(function () {\n if (i === size) {\n return iteratorDone();\n }\n var entry = cache[reverse ? size - ++i : i++];\n return iteratorValue(type, entry[0], entry[1]);\n });\n }\n return this.__iteratorUncached(type, reverse);\n };\n\n return Seq;\n}(Collection));\n\nvar KeyedSeq = /*@__PURE__*/(function (Seq) {\n function KeyedSeq(value) {\n return value === undefined || value === null\n ? emptySequence().toKeyedSeq()\n : isCollection(value)\n ? isKeyed(value)\n ? value.toSeq()\n : value.fromEntrySeq()\n : isRecord(value)\n ? value.toSeq()\n : keyedSeqFromValue(value);\n }\n\n if ( Seq ) KeyedSeq.__proto__ = Seq;\n KeyedSeq.prototype = Object.create( Seq && Seq.prototype );\n KeyedSeq.prototype.constructor = KeyedSeq;\n\n KeyedSeq.prototype.toKeyedSeq = function toKeyedSeq () {\n return this;\n };\n\n return KeyedSeq;\n}(Seq));\n\nvar IndexedSeq = /*@__PURE__*/(function (Seq) {\n function IndexedSeq(value) {\n return value === undefined || value === null\n ? emptySequence()\n : isCollection(value)\n ? isKeyed(value)\n ? value.entrySeq()\n : value.toIndexedSeq()\n : isRecord(value)\n ? value.toSeq().entrySeq()\n : indexedSeqFromValue(value);\n }\n\n if ( Seq ) IndexedSeq.__proto__ = Seq;\n IndexedSeq.prototype = Object.create( Seq && Seq.prototype );\n IndexedSeq.prototype.constructor = IndexedSeq;\n\n IndexedSeq.of = function of (/*...values*/) {\n return IndexedSeq(arguments);\n };\n\n IndexedSeq.prototype.toIndexedSeq = function toIndexedSeq () {\n return this;\n };\n\n IndexedSeq.prototype.toString = function toString () {\n return this.__toString('Seq [', ']');\n };\n\n return IndexedSeq;\n}(Seq));\n\nvar SetSeq = /*@__PURE__*/(function (Seq) {\n function SetSeq(value) {\n return (\n isCollection(value) && !isAssociative(value) ? value : IndexedSeq(value)\n ).toSetSeq();\n }\n\n if ( Seq ) SetSeq.__proto__ = Seq;\n SetSeq.prototype = Object.create( Seq && Seq.prototype );\n SetSeq.prototype.constructor = SetSeq;\n\n SetSeq.of = function of (/*...values*/) {\n return SetSeq(arguments);\n };\n\n SetSeq.prototype.toSetSeq = function toSetSeq () {\n return this;\n };\n\n return SetSeq;\n}(Seq));\n\nSeq.isSeq = isSeq;\nSeq.Keyed = KeyedSeq;\nSeq.Set = SetSeq;\nSeq.Indexed = IndexedSeq;\n\nSeq.prototype[IS_SEQ_SYMBOL] = true;\n\n// #pragma Root Sequences\n\nvar ArraySeq = /*@__PURE__*/(function (IndexedSeq) {\n function ArraySeq(array) {\n this._array = array;\n this.size = array.length;\n }\n\n if ( IndexedSeq ) ArraySeq.__proto__ = IndexedSeq;\n ArraySeq.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n ArraySeq.prototype.constructor = ArraySeq;\n\n ArraySeq.prototype.get = function get (index, notSetValue) {\n return this.has(index) ? this._array[wrapIndex(this, index)] : notSetValue;\n };\n\n ArraySeq.prototype.__iterate = function __iterate (fn, reverse) {\n var array = this._array;\n var size = array.length;\n var i = 0;\n while (i !== size) {\n var ii = reverse ? size - ++i : i++;\n if (fn(array[ii], ii, this) === false) {\n break;\n }\n }\n return i;\n };\n\n ArraySeq.prototype.__iterator = function __iterator (type, reverse) {\n var array = this._array;\n var size = array.length;\n var i = 0;\n return new Iterator(function () {\n if (i === size) {\n return iteratorDone();\n }\n var ii = reverse ? size - ++i : i++;\n return iteratorValue(type, ii, array[ii]);\n });\n };\n\n return ArraySeq;\n}(IndexedSeq));\n\nvar ObjectSeq = /*@__PURE__*/(function (KeyedSeq) {\n function ObjectSeq(object) {\n var keys = Object.keys(object).concat(\n Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(object) : []\n );\n this._object = object;\n this._keys = keys;\n this.size = keys.length;\n }\n\n if ( KeyedSeq ) ObjectSeq.__proto__ = KeyedSeq;\n ObjectSeq.prototype = Object.create( KeyedSeq && KeyedSeq.prototype );\n ObjectSeq.prototype.constructor = ObjectSeq;\n\n ObjectSeq.prototype.get = function get (key, notSetValue) {\n if (notSetValue !== undefined && !this.has(key)) {\n return notSetValue;\n }\n return this._object[key];\n };\n\n ObjectSeq.prototype.has = function has (key) {\n return hasOwnProperty.call(this._object, key);\n };\n\n ObjectSeq.prototype.__iterate = function __iterate (fn, reverse) {\n var object = this._object;\n var keys = this._keys;\n var size = keys.length;\n var i = 0;\n while (i !== size) {\n var key = keys[reverse ? size - ++i : i++];\n if (fn(object[key], key, this) === false) {\n break;\n }\n }\n return i;\n };\n\n ObjectSeq.prototype.__iterator = function __iterator (type, reverse) {\n var object = this._object;\n var keys = this._keys;\n var size = keys.length;\n var i = 0;\n return new Iterator(function () {\n if (i === size) {\n return iteratorDone();\n }\n var key = keys[reverse ? size - ++i : i++];\n return iteratorValue(type, key, object[key]);\n });\n };\n\n return ObjectSeq;\n}(KeyedSeq));\nObjectSeq.prototype[IS_ORDERED_SYMBOL] = true;\n\nvar CollectionSeq = /*@__PURE__*/(function (IndexedSeq) {\n function CollectionSeq(collection) {\n this._collection = collection;\n this.size = collection.length || collection.size;\n }\n\n if ( IndexedSeq ) CollectionSeq.__proto__ = IndexedSeq;\n CollectionSeq.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n CollectionSeq.prototype.constructor = CollectionSeq;\n\n CollectionSeq.prototype.__iterateUncached = function __iterateUncached (fn, reverse) {\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var collection = this._collection;\n var iterator = getIterator(collection);\n var iterations = 0;\n if (isIterator(iterator)) {\n var step;\n while (!(step = iterator.next()).done) {\n if (fn(step.value, iterations++, this) === false) {\n break;\n }\n }\n }\n return iterations;\n };\n\n CollectionSeq.prototype.__iteratorUncached = function __iteratorUncached (type, reverse) {\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var collection = this._collection;\n var iterator = getIterator(collection);\n if (!isIterator(iterator)) {\n return new Iterator(iteratorDone);\n }\n var iterations = 0;\n return new Iterator(function () {\n var step = iterator.next();\n return step.done ? step : iteratorValue(type, iterations++, step.value);\n });\n };\n\n return CollectionSeq;\n}(IndexedSeq));\n\n// # pragma Helper functions\n\nvar EMPTY_SEQ;\n\nfunction emptySequence() {\n return EMPTY_SEQ || (EMPTY_SEQ = new ArraySeq([]));\n}\n\nfunction keyedSeqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value);\n if (seq) {\n return seq.fromEntrySeq();\n }\n if (typeof value === 'object') {\n return new ObjectSeq(value);\n }\n throw new TypeError(\n 'Expected Array or collection object of [k, v] entries, or keyed object: ' +\n value\n );\n}\n\nfunction indexedSeqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value);\n if (seq) {\n return seq;\n }\n throw new TypeError(\n 'Expected Array or collection object of values: ' + value\n );\n}\n\nfunction seqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value);\n if (seq) {\n return isEntriesIterable(value)\n ? seq.fromEntrySeq()\n : isKeysIterable(value)\n ? seq.toSetSeq()\n : seq;\n }\n if (typeof value === 'object') {\n return new ObjectSeq(value);\n }\n throw new TypeError(\n 'Expected Array or collection object of values, or keyed object: ' + value\n );\n}\n\nfunction maybeIndexedSeqFromValue(value) {\n return isArrayLike(value)\n ? new ArraySeq(value)\n : hasIterator(value)\n ? new CollectionSeq(value)\n : undefined;\n}\n\nexport { ArraySeq, IndexedSeq, KeyedSeq, Seq, SetSeq, indexedSeqFromValue, keyedSeqFromValue };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar IS_MAP_SYMBOL = '@@__IMMUTABLE_MAP__@@';\n\nfunction isMap(maybeMap) {\n return Boolean(maybeMap && maybeMap[IS_MAP_SYMBOL]);\n}\n\nexport { IS_MAP_SYMBOL, isMap };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { isMap } from './isMap.js';\nimport { isOrdered } from './isOrdered.js';\n\nfunction isOrderedMap(maybeOrderedMap) {\n return isMap(maybeOrderedMap) && isOrdered(maybeOrderedMap);\n}\n\nexport { isOrderedMap };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nfunction isValueObject(maybeValue) {\n return Boolean(\n maybeValue &&\n typeof maybeValue.equals === 'function' &&\n typeof maybeValue.hashCode === 'function'\n );\n}\n\nexport { isValueObject };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { isValueObject } from './predicates/isValueObject.js';\n\n/**\n * An extension of the \"same-value\" algorithm as [described for use by ES6 Map\n * and Set](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#Key_equality)\n *\n * NaN is considered the same as NaN, however -0 and 0 are considered the same\n * value, which is different from the algorithm described by\n * [`Object.is`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is).\n *\n * This is extended further to allow Objects to describe the values they\n * represent, by way of `valueOf` or `equals` (and `hashCode`).\n *\n * Note: because of this extension, the key equality of Immutable.Map and the\n * value equality of Immutable.Set will differ from ES6 Map and Set.\n *\n * ### Defining custom values\n *\n * The easiest way to describe the value an object represents is by implementing\n * `valueOf`. For example, `Date` represents a value by returning a unix\n * timestamp for `valueOf`:\n *\n * var date1 = new Date(1234567890000); // Fri Feb 13 2009 ...\n * var date2 = new Date(1234567890000);\n * date1.valueOf(); // 1234567890000\n * assert( date1 !== date2 );\n * assert( Immutable.is( date1, date2 ) );\n *\n * Note: overriding `valueOf` may have other implications if you use this object\n * where JavaScript expects a primitive, such as implicit string coercion.\n *\n * For more complex types, especially collections, implementing `valueOf` may\n * not be performant. An alternative is to implement `equals` and `hashCode`.\n *\n * `equals` takes another object, presumably of similar type, and returns true\n * if it is equal. Equality is symmetrical, so the same result should be\n * returned if this and the argument are flipped.\n *\n * assert( a.equals(b) === b.equals(a) );\n *\n * `hashCode` returns a 32bit integer number representing the object which will\n * be used to determine how to store the value object in a Map or Set. You must\n * provide both or neither methods, one must not exist without the other.\n *\n * Also, an important relationship between these methods must be upheld: if two\n * values are equal, they *must* return the same hashCode. If the values are not\n * equal, they might have the same hashCode; this is called a hash collision,\n * and while undesirable for performance reasons, it is acceptable.\n *\n * if (a.equals(b)) {\n * assert( a.hashCode() === b.hashCode() );\n * }\n *\n * All Immutable collections are Value Objects: they implement `equals()`\n * and `hashCode()`.\n */\nfunction is(valueA, valueB) {\n if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) {\n return true;\n }\n if (!valueA || !valueB) {\n return false;\n }\n if (\n typeof valueA.valueOf === 'function' &&\n typeof valueB.valueOf === 'function'\n ) {\n valueA = valueA.valueOf();\n valueB = valueB.valueOf();\n if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) {\n return true;\n }\n if (!valueA || !valueB) {\n return false;\n }\n }\n return !!(\n isValueObject(valueA) &&\n isValueObject(valueB) &&\n valueA.equals(valueB)\n );\n}\n\nexport { is };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar imul =\n typeof Math.imul === 'function' && Math.imul(0xffffffff, 2) === -2\n ? Math.imul\n : function imul(a, b) {\n a |= 0; // int\n b |= 0; // int\n var c = a & 0xffff;\n var d = b & 0xffff;\n // Shift by 0 fixes the sign on the high part.\n return (c * d + ((((a >>> 16) * d + c * (b >>> 16)) << 16) >>> 0)) | 0; // int\n };\n\n// v8 has an optimization for storing 31-bit signed numbers.\n// Values which have either 00 or 11 as the high order bits qualify.\n// This function drops the highest order bit in a signed number, maintaining\n// the sign bit.\nfunction smi(i32) {\n return ((i32 >>> 1) & 0x40000000) | (i32 & 0xbfffffff);\n}\n\nexport { imul, smi };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { smi } from './Math.js';\n\nvar defaultValueOf = Object.prototype.valueOf;\n\nfunction hash(o) {\n if (o == null) {\n return hashNullish(o);\n }\n\n if (typeof o.hashCode === 'function') {\n // Drop any high bits from accidentally long hash codes.\n return smi(o.hashCode(o));\n }\n\n var v = valueOf(o);\n\n if (v == null) {\n return hashNullish(v);\n }\n\n switch (typeof v) {\n case 'boolean':\n // The hash values for built-in constants are a 1 value for each 5-byte\n // shift region expect for the first, which encodes the value. This\n // reduces the odds of a hash collision for these common values.\n return v ? 0x42108421 : 0x42108420;\n case 'number':\n return hashNumber(v);\n case 'string':\n return v.length > STRING_HASH_CACHE_MIN_STRLEN\n ? cachedHashString(v)\n : hashString(v);\n case 'object':\n case 'function':\n return hashJSObj(v);\n case 'symbol':\n return hashSymbol(v);\n default:\n if (typeof v.toString === 'function') {\n return hashString(v.toString());\n }\n throw new Error('Value type ' + typeof v + ' cannot be hashed.');\n }\n}\n\nfunction hashNullish(nullish) {\n return nullish === null ? 0x42108422 : /* undefined */ 0x42108423;\n}\n\n// Compress arbitrarily large numbers into smi hashes.\nfunction hashNumber(n) {\n if (n !== n || n === Infinity) {\n return 0;\n }\n var hash = n | 0;\n if (hash !== n) {\n hash ^= n * 0xffffffff;\n }\n while (n > 0xffffffff) {\n n /= 0xffffffff;\n hash ^= n;\n }\n return smi(hash);\n}\n\nfunction cachedHashString(string) {\n var hashed = stringHashCache[string];\n if (hashed === undefined) {\n hashed = hashString(string);\n if (STRING_HASH_CACHE_SIZE === STRING_HASH_CACHE_MAX_SIZE) {\n STRING_HASH_CACHE_SIZE = 0;\n stringHashCache = {};\n }\n STRING_HASH_CACHE_SIZE++;\n stringHashCache[string] = hashed;\n }\n return hashed;\n}\n\n// http://jsperf.com/hashing-strings\nfunction hashString(string) {\n // This is the hash from JVM\n // The hash code for a string is computed as\n // s[0] * 31 ^ (n - 1) + s[1] * 31 ^ (n - 2) + ... + s[n - 1],\n // where s[i] is the ith character of the string and n is the length of\n // the string. We \"mod\" the result to make it between 0 (inclusive) and 2^31\n // (exclusive) by dropping high bits.\n var hashed = 0;\n for (var ii = 0; ii < string.length; ii++) {\n hashed = (31 * hashed + string.charCodeAt(ii)) | 0;\n }\n return smi(hashed);\n}\n\nfunction hashSymbol(sym) {\n var hashed = symbolMap[sym];\n if (hashed !== undefined) {\n return hashed;\n }\n\n hashed = nextHash();\n\n symbolMap[sym] = hashed;\n\n return hashed;\n}\n\nfunction hashJSObj(obj) {\n var hashed;\n if (usingWeakMap) {\n hashed = weakMap.get(obj);\n if (hashed !== undefined) {\n return hashed;\n }\n }\n\n hashed = obj[UID_HASH_KEY];\n if (hashed !== undefined) {\n return hashed;\n }\n\n if (!canDefineProperty) {\n hashed = obj.propertyIsEnumerable && obj.propertyIsEnumerable[UID_HASH_KEY];\n if (hashed !== undefined) {\n return hashed;\n }\n\n hashed = getIENodeHash(obj);\n if (hashed !== undefined) {\n return hashed;\n }\n }\n\n hashed = nextHash();\n\n if (usingWeakMap) {\n weakMap.set(obj, hashed);\n } else if (isExtensible !== undefined && isExtensible(obj) === false) {\n throw new Error('Non-extensible objects are not allowed as keys.');\n } else if (canDefineProperty) {\n Object.defineProperty(obj, UID_HASH_KEY, {\n enumerable: false,\n configurable: false,\n writable: false,\n value: hashed,\n });\n } else if (\n obj.propertyIsEnumerable !== undefined &&\n obj.propertyIsEnumerable === obj.constructor.prototype.propertyIsEnumerable\n ) {\n // Since we can't define a non-enumerable property on the object\n // we'll hijack one of the less-used non-enumerable properties to\n // save our hash on it. Since this is a function it will not show up in\n // `JSON.stringify` which is what we want.\n obj.propertyIsEnumerable = function () {\n return this.constructor.prototype.propertyIsEnumerable.apply(\n this,\n arguments\n );\n };\n obj.propertyIsEnumerable[UID_HASH_KEY] = hashed;\n } else if (obj.nodeType !== undefined) {\n // At this point we couldn't get the IE `uniqueID` to use as a hash\n // and we couldn't use a non-enumerable property to exploit the\n // dontEnum bug so we simply add the `UID_HASH_KEY` on the node\n // itself.\n obj[UID_HASH_KEY] = hashed;\n } else {\n throw new Error('Unable to set a non-enumerable property on object.');\n }\n\n return hashed;\n}\n\n// Get references to ES5 object methods.\nvar isExtensible = Object.isExtensible;\n\n// True if Object.defineProperty works as expected. IE8 fails this test.\nvar canDefineProperty = (function () {\n try {\n Object.defineProperty({}, '@', {});\n return true;\n } catch (e) {\n return false;\n }\n})();\n\n// IE has a `uniqueID` property on DOM nodes. We can construct the hash from it\n// and avoid memory leaks from the IE cloneNode bug.\nfunction getIENodeHash(node) {\n if (node && node.nodeType > 0) {\n switch (node.nodeType) {\n case 1: // Element\n return node.uniqueID;\n case 9: // Document\n return node.documentElement && node.documentElement.uniqueID;\n }\n }\n}\n\nfunction valueOf(obj) {\n return obj.valueOf !== defaultValueOf && typeof obj.valueOf === 'function'\n ? obj.valueOf(obj)\n : obj;\n}\n\nfunction nextHash() {\n var nextHash = ++_objHashUID;\n if (_objHashUID & 0x40000000) {\n _objHashUID = 0;\n }\n return nextHash;\n}\n\n// If possible, use a WeakMap.\nvar usingWeakMap = typeof WeakMap === 'function';\nvar weakMap;\nif (usingWeakMap) {\n weakMap = new WeakMap();\n}\n\nvar symbolMap = Object.create(null);\n\nvar _objHashUID = 0;\n\nvar UID_HASH_KEY = '__immutablehash__';\nif (typeof Symbol === 'function') {\n UID_HASH_KEY = Symbol(UID_HASH_KEY);\n}\n\nvar STRING_HASH_CACHE_MIN_STRLEN = 16;\nvar STRING_HASH_CACHE_MAX_SIZE = 255;\nvar STRING_HASH_CACHE_SIZE = 0;\nvar stringHashCache = {};\n\nexport { hash };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { ensureSize, NOT_SET, wholeSlice, wrapIndex, resolveBegin, resolveEnd } from './TrieUtils.js';\nimport { KeyedCollection, Collection, IndexedCollection, SetCollection } from './Collection.js';\nimport { isCollection } from './predicates/isCollection.js';\nimport { isKeyed } from './predicates/isKeyed.js';\nimport { isIndexed } from './predicates/isIndexed.js';\nimport { IS_ORDERED_SYMBOL, isOrdered } from './predicates/isOrdered.js';\nimport { isSeq } from './predicates/isSeq.js';\nimport { ITERATE_VALUES, Iterator, iteratorValue, ITERATE_ENTRIES, ITERATE_KEYS, iteratorDone, getIterator } from './Iterator.js';\nimport { KeyedSeq, IndexedSeq, SetSeq, keyedSeqFromValue, indexedSeqFromValue, ArraySeq, Seq } from './Seq.js';\nimport { Map } from './Map.js';\nimport { OrderedMap } from './OrderedMap.js';\n\nvar ToKeyedSequence = /*@__PURE__*/(function (KeyedSeq) {\n function ToKeyedSequence(indexed, useKeys) {\n this._iter = indexed;\n this._useKeys = useKeys;\n this.size = indexed.size;\n }\n\n if ( KeyedSeq ) ToKeyedSequence.__proto__ = KeyedSeq;\n ToKeyedSequence.prototype = Object.create( KeyedSeq && KeyedSeq.prototype );\n ToKeyedSequence.prototype.constructor = ToKeyedSequence;\n\n ToKeyedSequence.prototype.get = function get (key, notSetValue) {\n return this._iter.get(key, notSetValue);\n };\n\n ToKeyedSequence.prototype.has = function has (key) {\n return this._iter.has(key);\n };\n\n ToKeyedSequence.prototype.valueSeq = function valueSeq () {\n return this._iter.valueSeq();\n };\n\n ToKeyedSequence.prototype.reverse = function reverse () {\n var this$1$1 = this;\n\n var reversedSequence = reverseFactory(this, true);\n if (!this._useKeys) {\n reversedSequence.valueSeq = function () { return this$1$1._iter.toSeq().reverse(); };\n }\n return reversedSequence;\n };\n\n ToKeyedSequence.prototype.map = function map (mapper, context) {\n var this$1$1 = this;\n\n var mappedSequence = mapFactory(this, mapper, context);\n if (!this._useKeys) {\n mappedSequence.valueSeq = function () { return this$1$1._iter.toSeq().map(mapper, context); };\n }\n return mappedSequence;\n };\n\n ToKeyedSequence.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n return this._iter.__iterate(function (v, k) { return fn(v, k, this$1$1); }, reverse);\n };\n\n ToKeyedSequence.prototype.__iterator = function __iterator (type, reverse) {\n return this._iter.__iterator(type, reverse);\n };\n\n return ToKeyedSequence;\n}(KeyedSeq));\nToKeyedSequence.prototype[IS_ORDERED_SYMBOL] = true;\n\nvar ToIndexedSequence = /*@__PURE__*/(function (IndexedSeq) {\n function ToIndexedSequence(iter) {\n this._iter = iter;\n this.size = iter.size;\n }\n\n if ( IndexedSeq ) ToIndexedSequence.__proto__ = IndexedSeq;\n ToIndexedSequence.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n ToIndexedSequence.prototype.constructor = ToIndexedSequence;\n\n ToIndexedSequence.prototype.includes = function includes (value) {\n return this._iter.includes(value);\n };\n\n ToIndexedSequence.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n var i = 0;\n reverse && ensureSize(this);\n return this._iter.__iterate(\n function (v) { return fn(v, reverse ? this$1$1.size - ++i : i++, this$1$1); },\n reverse\n );\n };\n\n ToIndexedSequence.prototype.__iterator = function __iterator (type, reverse) {\n var this$1$1 = this;\n\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n var i = 0;\n reverse && ensureSize(this);\n return new Iterator(function () {\n var step = iterator.next();\n return step.done\n ? step\n : iteratorValue(\n type,\n reverse ? this$1$1.size - ++i : i++,\n step.value,\n step\n );\n });\n };\n\n return ToIndexedSequence;\n}(IndexedSeq));\n\nvar ToSetSequence = /*@__PURE__*/(function (SetSeq) {\n function ToSetSequence(iter) {\n this._iter = iter;\n this.size = iter.size;\n }\n\n if ( SetSeq ) ToSetSequence.__proto__ = SetSeq;\n ToSetSequence.prototype = Object.create( SetSeq && SetSeq.prototype );\n ToSetSequence.prototype.constructor = ToSetSequence;\n\n ToSetSequence.prototype.has = function has (key) {\n return this._iter.includes(key);\n };\n\n ToSetSequence.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n return this._iter.__iterate(function (v) { return fn(v, v, this$1$1); }, reverse);\n };\n\n ToSetSequence.prototype.__iterator = function __iterator (type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n return new Iterator(function () {\n var step = iterator.next();\n return step.done\n ? step\n : iteratorValue(type, step.value, step.value, step);\n });\n };\n\n return ToSetSequence;\n}(SetSeq));\n\nvar FromEntriesSequence = /*@__PURE__*/(function (KeyedSeq) {\n function FromEntriesSequence(entries) {\n this._iter = entries;\n this.size = entries.size;\n }\n\n if ( KeyedSeq ) FromEntriesSequence.__proto__ = KeyedSeq;\n FromEntriesSequence.prototype = Object.create( KeyedSeq && KeyedSeq.prototype );\n FromEntriesSequence.prototype.constructor = FromEntriesSequence;\n\n FromEntriesSequence.prototype.entrySeq = function entrySeq () {\n return this._iter.toSeq();\n };\n\n FromEntriesSequence.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n return this._iter.__iterate(function (entry) {\n // Check if entry exists first so array access doesn't throw for holes\n // in the parent iteration.\n if (entry) {\n validateEntry(entry);\n var indexedCollection = isCollection(entry);\n return fn(\n indexedCollection ? entry.get(1) : entry[1],\n indexedCollection ? entry.get(0) : entry[0],\n this$1$1\n );\n }\n }, reverse);\n };\n\n FromEntriesSequence.prototype.__iterator = function __iterator (type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n return new Iterator(function () {\n while (true) {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n // Check if entry exists first so array access doesn't throw for holes\n // in the parent iteration.\n if (entry) {\n validateEntry(entry);\n var indexedCollection = isCollection(entry);\n return iteratorValue(\n type,\n indexedCollection ? entry.get(0) : entry[0],\n indexedCollection ? entry.get(1) : entry[1],\n step\n );\n }\n }\n });\n };\n\n return FromEntriesSequence;\n}(KeyedSeq));\n\nToIndexedSequence.prototype.cacheResult =\n ToKeyedSequence.prototype.cacheResult =\n ToSetSequence.prototype.cacheResult =\n FromEntriesSequence.prototype.cacheResult =\n cacheResultThrough;\n\nfunction flipFactory(collection) {\n var flipSequence = makeSequence(collection);\n flipSequence._iter = collection;\n flipSequence.size = collection.size;\n flipSequence.flip = function () { return collection; };\n flipSequence.reverse = function () {\n var reversedSequence = collection.reverse.apply(this); // super.reverse()\n reversedSequence.flip = function () { return collection.reverse(); };\n return reversedSequence;\n };\n flipSequence.has = function (key) { return collection.includes(key); };\n flipSequence.includes = function (key) { return collection.has(key); };\n flipSequence.cacheResult = cacheResultThrough;\n flipSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n return collection.__iterate(function (v, k) { return fn(k, v, this$1$1) !== false; }, reverse);\n };\n flipSequence.__iteratorUncached = function (type, reverse) {\n if (type === ITERATE_ENTRIES) {\n var iterator = collection.__iterator(type, reverse);\n return new Iterator(function () {\n var step = iterator.next();\n if (!step.done) {\n var k = step.value[0];\n step.value[0] = step.value[1];\n step.value[1] = k;\n }\n return step;\n });\n }\n return collection.__iterator(\n type === ITERATE_VALUES ? ITERATE_KEYS : ITERATE_VALUES,\n reverse\n );\n };\n return flipSequence;\n}\n\nfunction mapFactory(collection, mapper, context) {\n var mappedSequence = makeSequence(collection);\n mappedSequence.size = collection.size;\n mappedSequence.has = function (key) { return collection.has(key); };\n mappedSequence.get = function (key, notSetValue) {\n var v = collection.get(key, NOT_SET);\n return v === NOT_SET\n ? notSetValue\n : mapper.call(context, v, key, collection);\n };\n mappedSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n return collection.__iterate(\n function (v, k, c) { return fn(mapper.call(context, v, k, c), k, this$1$1) !== false; },\n reverse\n );\n };\n mappedSequence.__iteratorUncached = function (type, reverse) {\n var iterator = collection.__iterator(ITERATE_ENTRIES, reverse);\n return new Iterator(function () {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var key = entry[0];\n return iteratorValue(\n type,\n key,\n mapper.call(context, entry[1], key, collection),\n step\n );\n });\n };\n return mappedSequence;\n}\n\nfunction reverseFactory(collection, useKeys) {\n var this$1$1 = this;\n\n var reversedSequence = makeSequence(collection);\n reversedSequence._iter = collection;\n reversedSequence.size = collection.size;\n reversedSequence.reverse = function () { return collection; };\n if (collection.flip) {\n reversedSequence.flip = function () {\n var flipSequence = flipFactory(collection);\n flipSequence.reverse = function () { return collection.flip(); };\n return flipSequence;\n };\n }\n reversedSequence.get = function (key, notSetValue) { return collection.get(useKeys ? key : -1 - key, notSetValue); };\n reversedSequence.has = function (key) { return collection.has(useKeys ? key : -1 - key); };\n reversedSequence.includes = function (value) { return collection.includes(value); };\n reversedSequence.cacheResult = cacheResultThrough;\n reversedSequence.__iterate = function (fn, reverse) {\n var this$1$1 = this;\n\n var i = 0;\n reverse && ensureSize(collection);\n return collection.__iterate(\n function (v, k) { return fn(v, useKeys ? k : reverse ? this$1$1.size - ++i : i++, this$1$1); },\n !reverse\n );\n };\n reversedSequence.__iterator = function (type, reverse) {\n var i = 0;\n reverse && ensureSize(collection);\n var iterator = collection.__iterator(ITERATE_ENTRIES, !reverse);\n return new Iterator(function () {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n return iteratorValue(\n type,\n useKeys ? entry[0] : reverse ? this$1$1.size - ++i : i++,\n entry[1],\n step\n );\n });\n };\n return reversedSequence;\n}\n\nfunction filterFactory(collection, predicate, context, useKeys) {\n var filterSequence = makeSequence(collection);\n if (useKeys) {\n filterSequence.has = function (key) {\n var v = collection.get(key, NOT_SET);\n return v !== NOT_SET && !!predicate.call(context, v, key, collection);\n };\n filterSequence.get = function (key, notSetValue) {\n var v = collection.get(key, NOT_SET);\n return v !== NOT_SET && predicate.call(context, v, key, collection)\n ? v\n : notSetValue;\n };\n }\n filterSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n var iterations = 0;\n collection.__iterate(function (v, k, c) {\n if (predicate.call(context, v, k, c)) {\n iterations++;\n return fn(v, useKeys ? k : iterations - 1, this$1$1);\n }\n }, reverse);\n return iterations;\n };\n filterSequence.__iteratorUncached = function (type, reverse) {\n var iterator = collection.__iterator(ITERATE_ENTRIES, reverse);\n var iterations = 0;\n return new Iterator(function () {\n while (true) {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var key = entry[0];\n var value = entry[1];\n if (predicate.call(context, value, key, collection)) {\n return iteratorValue(type, useKeys ? key : iterations++, value, step);\n }\n }\n });\n };\n return filterSequence;\n}\n\nfunction countByFactory(collection, grouper, context) {\n var groups = Map().asMutable();\n collection.__iterate(function (v, k) {\n groups.update(grouper.call(context, v, k, collection), 0, function (a) { return a + 1; });\n });\n return groups.asImmutable();\n}\n\nfunction groupByFactory(collection, grouper, context) {\n var isKeyedIter = isKeyed(collection);\n var groups = (isOrdered(collection) ? OrderedMap() : Map()).asMutable();\n collection.__iterate(function (v, k) {\n groups.update(\n grouper.call(context, v, k, collection),\n function (a) { return ((a = a || []), a.push(isKeyedIter ? [k, v] : v), a); }\n );\n });\n var coerce = collectionClass(collection);\n return groups.map(function (arr) { return reify(collection, coerce(arr)); }).asImmutable();\n}\n\nfunction partitionFactory(collection, predicate, context) {\n var isKeyedIter = isKeyed(collection);\n var groups = [[], []];\n collection.__iterate(function (v, k) {\n groups[predicate.call(context, v, k, collection) ? 1 : 0].push(\n isKeyedIter ? [k, v] : v\n );\n });\n var coerce = collectionClass(collection);\n return groups.map(function (arr) { return reify(collection, coerce(arr)); });\n}\n\nfunction sliceFactory(collection, begin, end, useKeys) {\n var originalSize = collection.size;\n\n if (wholeSlice(begin, end, originalSize)) {\n return collection;\n }\n\n var resolvedBegin = resolveBegin(begin, originalSize);\n var resolvedEnd = resolveEnd(end, originalSize);\n\n // begin or end will be NaN if they were provided as negative numbers and\n // this collection's size is unknown. In that case, cache first so there is\n // a known size and these do not resolve to NaN.\n if (resolvedBegin !== resolvedBegin || resolvedEnd !== resolvedEnd) {\n return sliceFactory(collection.toSeq().cacheResult(), begin, end, useKeys);\n }\n\n // Note: resolvedEnd is undefined when the original sequence's length is\n // unknown and this slice did not supply an end and should contain all\n // elements after resolvedBegin.\n // In that case, resolvedSize will be NaN and sliceSize will remain undefined.\n var resolvedSize = resolvedEnd - resolvedBegin;\n var sliceSize;\n if (resolvedSize === resolvedSize) {\n sliceSize = resolvedSize < 0 ? 0 : resolvedSize;\n }\n\n var sliceSeq = makeSequence(collection);\n\n // If collection.size is undefined, the size of the realized sliceSeq is\n // unknown at this point unless the number of items to slice is 0\n sliceSeq.size =\n sliceSize === 0 ? sliceSize : (collection.size && sliceSize) || undefined;\n\n if (!useKeys && isSeq(collection) && sliceSize >= 0) {\n sliceSeq.get = function (index, notSetValue) {\n index = wrapIndex(this, index);\n return index >= 0 && index < sliceSize\n ? collection.get(index + resolvedBegin, notSetValue)\n : notSetValue;\n };\n }\n\n sliceSeq.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n if (sliceSize === 0) {\n return 0;\n }\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var skipped = 0;\n var isSkipping = true;\n var iterations = 0;\n collection.__iterate(function (v, k) {\n if (!(isSkipping && (isSkipping = skipped++ < resolvedBegin))) {\n iterations++;\n return (\n fn(v, useKeys ? k : iterations - 1, this$1$1) !== false &&\n iterations !== sliceSize\n );\n }\n });\n return iterations;\n };\n\n sliceSeq.__iteratorUncached = function (type, reverse) {\n if (sliceSize !== 0 && reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n // Don't bother instantiating parent iterator if taking 0.\n if (sliceSize === 0) {\n return new Iterator(iteratorDone);\n }\n var iterator = collection.__iterator(type, reverse);\n var skipped = 0;\n var iterations = 0;\n return new Iterator(function () {\n while (skipped++ < resolvedBegin) {\n iterator.next();\n }\n if (++iterations > sliceSize) {\n return iteratorDone();\n }\n var step = iterator.next();\n if (useKeys || type === ITERATE_VALUES || step.done) {\n return step;\n }\n if (type === ITERATE_KEYS) {\n return iteratorValue(type, iterations - 1, undefined, step);\n }\n return iteratorValue(type, iterations - 1, step.value[1], step);\n });\n };\n\n return sliceSeq;\n}\n\nfunction takeWhileFactory(collection, predicate, context) {\n var takeSequence = makeSequence(collection);\n takeSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var iterations = 0;\n collection.__iterate(\n function (v, k, c) { return predicate.call(context, v, k, c) && ++iterations && fn(v, k, this$1$1); }\n );\n return iterations;\n };\n takeSequence.__iteratorUncached = function (type, reverse) {\n var this$1$1 = this;\n\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = collection.__iterator(ITERATE_ENTRIES, reverse);\n var iterating = true;\n return new Iterator(function () {\n if (!iterating) {\n return iteratorDone();\n }\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var k = entry[0];\n var v = entry[1];\n if (!predicate.call(context, v, k, this$1$1)) {\n iterating = false;\n return iteratorDone();\n }\n return type === ITERATE_ENTRIES ? step : iteratorValue(type, k, v, step);\n });\n };\n return takeSequence;\n}\n\nfunction skipWhileFactory(collection, predicate, context, useKeys) {\n var skipSequence = makeSequence(collection);\n skipSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var isSkipping = true;\n var iterations = 0;\n collection.__iterate(function (v, k, c) {\n if (!(isSkipping && (isSkipping = predicate.call(context, v, k, c)))) {\n iterations++;\n return fn(v, useKeys ? k : iterations - 1, this$1$1);\n }\n });\n return iterations;\n };\n skipSequence.__iteratorUncached = function (type, reverse) {\n var this$1$1 = this;\n\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = collection.__iterator(ITERATE_ENTRIES, reverse);\n var skipping = true;\n var iterations = 0;\n return new Iterator(function () {\n var step;\n var k;\n var v;\n do {\n step = iterator.next();\n if (step.done) {\n if (useKeys || type === ITERATE_VALUES) {\n return step;\n }\n if (type === ITERATE_KEYS) {\n return iteratorValue(type, iterations++, undefined, step);\n }\n return iteratorValue(type, iterations++, step.value[1], step);\n }\n var entry = step.value;\n k = entry[0];\n v = entry[1];\n skipping && (skipping = predicate.call(context, v, k, this$1$1));\n } while (skipping);\n return type === ITERATE_ENTRIES ? step : iteratorValue(type, k, v, step);\n });\n };\n return skipSequence;\n}\n\nfunction concatFactory(collection, values) {\n var isKeyedCollection = isKeyed(collection);\n var iters = [collection]\n .concat(values)\n .map(function (v) {\n if (!isCollection(v)) {\n v = isKeyedCollection\n ? keyedSeqFromValue(v)\n : indexedSeqFromValue(Array.isArray(v) ? v : [v]);\n } else if (isKeyedCollection) {\n v = KeyedCollection(v);\n }\n return v;\n })\n .filter(function (v) { return v.size !== 0; });\n\n if (iters.length === 0) {\n return collection;\n }\n\n if (iters.length === 1) {\n var singleton = iters[0];\n if (\n singleton === collection ||\n (isKeyedCollection && isKeyed(singleton)) ||\n (isIndexed(collection) && isIndexed(singleton))\n ) {\n return singleton;\n }\n }\n\n var concatSeq = new ArraySeq(iters);\n if (isKeyedCollection) {\n concatSeq = concatSeq.toKeyedSeq();\n } else if (!isIndexed(collection)) {\n concatSeq = concatSeq.toSetSeq();\n }\n concatSeq = concatSeq.flatten(true);\n concatSeq.size = iters.reduce(function (sum, seq) {\n if (sum !== undefined) {\n var size = seq.size;\n if (size !== undefined) {\n return sum + size;\n }\n }\n }, 0);\n return concatSeq;\n}\n\nfunction flattenFactory(collection, depth, useKeys) {\n var flatSequence = makeSequence(collection);\n flatSequence.__iterateUncached = function (fn, reverse) {\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var iterations = 0;\n var stopped = false;\n function flatDeep(iter, currentDepth) {\n iter.__iterate(function (v, k) {\n if ((!depth || currentDepth < depth) && isCollection(v)) {\n flatDeep(v, currentDepth + 1);\n } else {\n iterations++;\n if (fn(v, useKeys ? k : iterations - 1, flatSequence) === false) {\n stopped = true;\n }\n }\n return !stopped;\n }, reverse);\n }\n flatDeep(collection, 0);\n return iterations;\n };\n flatSequence.__iteratorUncached = function (type, reverse) {\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = collection.__iterator(type, reverse);\n var stack = [];\n var iterations = 0;\n return new Iterator(function () {\n while (iterator) {\n var step = iterator.next();\n if (step.done !== false) {\n iterator = stack.pop();\n continue;\n }\n var v = step.value;\n if (type === ITERATE_ENTRIES) {\n v = v[1];\n }\n if ((!depth || stack.length < depth) && isCollection(v)) {\n stack.push(iterator);\n iterator = v.__iterator(type, reverse);\n } else {\n return useKeys ? step : iteratorValue(type, iterations++, v, step);\n }\n }\n return iteratorDone();\n });\n };\n return flatSequence;\n}\n\nfunction flatMapFactory(collection, mapper, context) {\n var coerce = collectionClass(collection);\n return collection\n .toSeq()\n .map(function (v, k) { return coerce(mapper.call(context, v, k, collection)); })\n .flatten(true);\n}\n\nfunction interposeFactory(collection, separator) {\n var interposedSequence = makeSequence(collection);\n interposedSequence.size = collection.size && collection.size * 2 - 1;\n interposedSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n var iterations = 0;\n collection.__iterate(\n function (v) { return (!iterations || fn(separator, iterations++, this$1$1) !== false) &&\n fn(v, iterations++, this$1$1) !== false; },\n reverse\n );\n return iterations;\n };\n interposedSequence.__iteratorUncached = function (type, reverse) {\n var iterator = collection.__iterator(ITERATE_VALUES, reverse);\n var iterations = 0;\n var step;\n return new Iterator(function () {\n if (!step || iterations % 2) {\n step = iterator.next();\n if (step.done) {\n return step;\n }\n }\n return iterations % 2\n ? iteratorValue(type, iterations++, separator)\n : iteratorValue(type, iterations++, step.value, step);\n });\n };\n return interposedSequence;\n}\n\nfunction sortFactory(collection, comparator, mapper) {\n if (!comparator) {\n comparator = defaultComparator;\n }\n var isKeyedCollection = isKeyed(collection);\n var index = 0;\n var entries = collection\n .toSeq()\n .map(function (v, k) { return [k, v, index++, mapper ? mapper(v, k, collection) : v]; })\n .valueSeq()\n .toArray();\n entries\n .sort(function (a, b) { return comparator(a[3], b[3]) || a[2] - b[2]; })\n .forEach(\n isKeyedCollection\n ? function (v, i) {\n entries[i].length = 2;\n }\n : function (v, i) {\n entries[i] = v[1];\n }\n );\n return isKeyedCollection\n ? KeyedSeq(entries)\n : isIndexed(collection)\n ? IndexedSeq(entries)\n : SetSeq(entries);\n}\n\nfunction maxFactory(collection, comparator, mapper) {\n if (!comparator) {\n comparator = defaultComparator;\n }\n if (mapper) {\n var entry = collection\n .toSeq()\n .map(function (v, k) { return [v, mapper(v, k, collection)]; })\n .reduce(function (a, b) { return (maxCompare(comparator, a[1], b[1]) ? b : a); });\n return entry && entry[0];\n }\n return collection.reduce(function (a, b) { return (maxCompare(comparator, a, b) ? b : a); });\n}\n\nfunction maxCompare(comparator, a, b) {\n var comp = comparator(b, a);\n // b is considered the new max if the comparator declares them equal, but\n // they are not equal and b is in fact a nullish value.\n return (\n (comp === 0 && b !== a && (b === undefined || b === null || b !== b)) ||\n comp > 0\n );\n}\n\nfunction zipWithFactory(keyIter, zipper, iters, zipAll) {\n var zipSequence = makeSequence(keyIter);\n var sizes = new ArraySeq(iters).map(function (i) { return i.size; });\n zipSequence.size = zipAll ? sizes.max() : sizes.min();\n // Note: this a generic base implementation of __iterate in terms of\n // __iterator which may be more generically useful in the future.\n zipSequence.__iterate = function (fn, reverse) {\n /* generic:\n var iterator = this.__iterator(ITERATE_ENTRIES, reverse);\n var step;\n var iterations = 0;\n while (!(step = iterator.next()).done) {\n iterations++;\n if (fn(step.value[1], step.value[0], this) === false) {\n break;\n }\n }\n return iterations;\n */\n // indexed:\n var iterator = this.__iterator(ITERATE_VALUES, reverse);\n var step;\n var iterations = 0;\n while (!(step = iterator.next()).done) {\n if (fn(step.value, iterations++, this) === false) {\n break;\n }\n }\n return iterations;\n };\n zipSequence.__iteratorUncached = function (type, reverse) {\n var iterators = iters.map(\n function (i) { return ((i = Collection(i)), getIterator(reverse ? i.reverse() : i)); }\n );\n var iterations = 0;\n var isDone = false;\n return new Iterator(function () {\n var steps;\n if (!isDone) {\n steps = iterators.map(function (i) { return i.next(); });\n isDone = zipAll ? steps.every(function (s) { return s.done; }) : steps.some(function (s) { return s.done; });\n }\n if (isDone) {\n return iteratorDone();\n }\n return iteratorValue(\n type,\n iterations++,\n zipper.apply(\n null,\n steps.map(function (s) { return s.value; })\n )\n );\n });\n };\n return zipSequence;\n}\n\n// #pragma Helper Functions\n\nfunction reify(iter, seq) {\n return iter === seq ? iter : isSeq(iter) ? seq : iter.constructor(seq);\n}\n\nfunction validateEntry(entry) {\n if (entry !== Object(entry)) {\n throw new TypeError('Expected [K, V] tuple: ' + entry);\n }\n}\n\nfunction collectionClass(collection) {\n return isKeyed(collection)\n ? KeyedCollection\n : isIndexed(collection)\n ? IndexedCollection\n : SetCollection;\n}\n\nfunction makeSequence(collection) {\n return Object.create(\n (isKeyed(collection)\n ? KeyedSeq\n : isIndexed(collection)\n ? IndexedSeq\n : SetSeq\n ).prototype\n );\n}\n\nfunction cacheResultThrough() {\n if (this._iter.cacheResult) {\n this._iter.cacheResult();\n this.size = this._iter.size;\n return this;\n }\n return Seq.prototype.cacheResult.call(this);\n}\n\nfunction defaultComparator(a, b) {\n if (a === undefined && b === undefined) {\n return 0;\n }\n\n if (a === undefined) {\n return 1;\n }\n\n if (b === undefined) {\n return -1;\n }\n\n return a > b ? 1 : a < b ? -1 : 0;\n}\n\nexport { FromEntriesSequence, ToIndexedSequence, ToKeyedSequence, ToSetSequence, concatFactory, countByFactory, filterFactory, flatMapFactory, flattenFactory, flipFactory, groupByFactory, interposeFactory, mapFactory, maxFactory, partitionFactory, reify, reverseFactory, skipWhileFactory, sliceFactory, sortFactory, takeWhileFactory, zipWithFactory };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n// http://jsperf.com/copy-array-inline\nfunction arrCopy(arr, offset) {\n offset = offset || 0;\n var len = Math.max(0, arr.length - offset);\n var newArr = new Array(len);\n for (var ii = 0; ii < len; ii++) {\n newArr[ii] = arr[ii + offset];\n }\n return newArr;\n}\n\nexport { arrCopy as default };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nfunction invariant(condition, error) {\n if (!condition) { throw new Error(error); }\n}\n\nexport { invariant as default };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport invariant from './invariant.js';\n\nfunction assertNotInfinite(size) {\n invariant(\n size !== Infinity,\n 'Cannot perform this action with an infinite size.'\n );\n}\n\nexport { assertNotInfinite as default };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { isOrdered } from '../predicates/isOrdered.js';\nimport isArrayLike from './isArrayLike.js';\n\nfunction coerceKeyPath(keyPath) {\n if (isArrayLike(keyPath) && typeof keyPath !== 'string') {\n return keyPath;\n }\n if (isOrdered(keyPath)) {\n return keyPath.toArray();\n }\n throw new TypeError(\n 'Invalid keyPath: expected Ordered Collection or Array: ' + keyPath\n );\n}\n\nexport { coerceKeyPath as default };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar toString = Object.prototype.toString;\n\nfunction isPlainObject(value) {\n // The base prototype's toString deals with Argument objects and native namespaces like Math\n if (\n !value ||\n typeof value !== 'object' ||\n toString.call(value) !== '[object Object]'\n ) {\n return false;\n }\n\n var proto = Object.getPrototypeOf(value);\n if (proto === null) {\n return true;\n }\n\n // Iteratively going up the prototype chain is needed for cross-realm environments (differing contexts, iframes, etc)\n var parentProto = proto;\n var nextProto = Object.getPrototypeOf(proto);\n while (nextProto !== null) {\n parentProto = nextProto;\n nextProto = Object.getPrototypeOf(parentProto);\n }\n return parentProto === proto;\n}\n\nexport { isPlainObject as default };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { isImmutable } from '../predicates/isImmutable.js';\nimport isPlainObject from './isPlainObj.js';\n\n/**\n * Returns true if the value is a potentially-persistent data structure, either\n * provided by Immutable.js or a plain Array or Object.\n */\nfunction isDataStructure(value) {\n return (\n typeof value === 'object' &&\n (isImmutable(value) || Array.isArray(value) || isPlainObject(value))\n );\n}\n\nexport { isDataStructure as default };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n/**\n * Converts a value to a string, adding quotes if a string was provided.\n */\nfunction quoteString(value) {\n try {\n return typeof value === 'string' ? JSON.stringify(value) : String(value);\n } catch (_ignoreError) {\n return JSON.stringify(value);\n }\n}\n\nexport { quoteString as default };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { isImmutable } from '../predicates/isImmutable.js';\nimport { has } from './has.js';\n\nfunction get(collection, key, notSetValue) {\n return isImmutable(collection)\n ? collection.get(key, notSetValue)\n : !has(collection, key)\n ? notSetValue\n : typeof collection.get === 'function'\n ? collection.get(key)\n : collection[key];\n}\n\nexport { get };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { isImmutable } from '../predicates/isImmutable.js';\nimport hasOwnProperty from '../utils/hasOwnProperty.js';\nimport isDataStructure from '../utils/isDataStructure.js';\n\nfunction has(collection, key) {\n return isImmutable(collection)\n ? collection.has(key)\n : isDataStructure(collection) && hasOwnProperty.call(collection, key);\n}\n\nexport { has };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport arrCopy from './arrCopy.js';\nimport hasOwnProperty from './hasOwnProperty.js';\n\nfunction shallowCopy(from) {\n if (Array.isArray(from)) {\n return arrCopy(from);\n }\n var to = {};\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n return to;\n}\n\nexport { shallowCopy as default };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { isImmutable } from '../predicates/isImmutable.js';\nimport coerceKeyPath from '../utils/coerceKeyPath.js';\nimport isDataStructure from '../utils/isDataStructure.js';\nimport quoteString from '../utils/quoteString.js';\nimport { NOT_SET } from '../TrieUtils.js';\nimport { emptyMap } from '../Map.js';\nimport { get } from './get.js';\nimport { remove } from './remove.js';\nimport { set } from './set.js';\n\nfunction updateIn(collection, keyPath, notSetValue, updater) {\n if (!updater) {\n updater = notSetValue;\n notSetValue = undefined;\n }\n var updatedValue = updateInDeeply(\n isImmutable(collection),\n collection,\n coerceKeyPath(keyPath),\n 0,\n notSetValue,\n updater\n );\n return updatedValue === NOT_SET ? notSetValue : updatedValue;\n}\n\nfunction updateInDeeply(\n inImmutable,\n existing,\n keyPath,\n i,\n notSetValue,\n updater\n) {\n var wasNotSet = existing === NOT_SET;\n if (i === keyPath.length) {\n var existingValue = wasNotSet ? notSetValue : existing;\n var newValue = updater(existingValue);\n return newValue === existingValue ? existing : newValue;\n }\n if (!wasNotSet && !isDataStructure(existing)) {\n throw new TypeError(\n 'Cannot update within non-data-structure value in path [' +\n keyPath.slice(0, i).map(quoteString) +\n ']: ' +\n existing\n );\n }\n var key = keyPath[i];\n var nextExisting = wasNotSet ? NOT_SET : get(existing, key, NOT_SET);\n var nextUpdated = updateInDeeply(\n nextExisting === NOT_SET ? inImmutable : isImmutable(nextExisting),\n nextExisting,\n keyPath,\n i + 1,\n notSetValue,\n updater\n );\n return nextUpdated === nextExisting\n ? existing\n : nextUpdated === NOT_SET\n ? remove(existing, key)\n : set(\n wasNotSet ? (inImmutable ? emptyMap() : {}) : existing,\n key,\n nextUpdated\n );\n}\n\nexport { updateIn };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { isImmutable } from '../predicates/isImmutable.js';\nimport hasOwnProperty from '../utils/hasOwnProperty.js';\nimport isDataStructure from '../utils/isDataStructure.js';\nimport shallowCopy from '../utils/shallowCopy.js';\n\nfunction remove(collection, key) {\n if (!isDataStructure(collection)) {\n throw new TypeError(\n 'Cannot update non-data-structure value: ' + collection\n );\n }\n if (isImmutable(collection)) {\n if (!collection.remove) {\n throw new TypeError(\n 'Cannot update immutable value without .remove() method: ' + collection\n );\n }\n return collection.remove(key);\n }\n if (!hasOwnProperty.call(collection, key)) {\n return collection;\n }\n var collectionCopy = shallowCopy(collection);\n if (Array.isArray(collectionCopy)) {\n collectionCopy.splice(key, 1);\n } else {\n delete collectionCopy[key];\n }\n return collectionCopy;\n}\n\nexport { remove };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { isImmutable } from '../predicates/isImmutable.js';\nimport hasOwnProperty from '../utils/hasOwnProperty.js';\nimport isDataStructure from '../utils/isDataStructure.js';\nimport shallowCopy from '../utils/shallowCopy.js';\n\nfunction set(collection, key, value) {\n if (!isDataStructure(collection)) {\n throw new TypeError(\n 'Cannot update non-data-structure value: ' + collection\n );\n }\n if (isImmutable(collection)) {\n if (!collection.set) {\n throw new TypeError(\n 'Cannot update immutable value without .set() method: ' + collection\n );\n }\n return collection.set(key, value);\n }\n if (hasOwnProperty.call(collection, key) && value === collection[key]) {\n return collection;\n }\n var collectionCopy = shallowCopy(collection);\n collectionCopy[key] = value;\n return collectionCopy;\n}\n\nexport { set };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { updateIn } from './updateIn.js';\nimport { NOT_SET } from '../TrieUtils.js';\n\nfunction setIn(collection, keyPath, value) {\n return updateIn(collection, keyPath, NOT_SET, function () { return value; });\n}\n\nexport { setIn };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { setIn as setIn$1 } from '../functional/setIn.js';\n\nfunction setIn(keyPath, v) {\n return setIn$1(this, keyPath, v);\n}\n\nexport { setIn };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { removeIn } from '../functional/removeIn.js';\n\nfunction deleteIn(keyPath) {\n return removeIn(this, keyPath);\n}\n\nexport { deleteIn };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { updateIn } from './updateIn.js';\nimport { NOT_SET } from '../TrieUtils.js';\n\nfunction removeIn(collection, keyPath) {\n return updateIn(collection, keyPath, function () { return NOT_SET; });\n}\n\nexport { removeIn };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { updateIn } from './updateIn.js';\n\nfunction update(collection, key, notSetValue, updater) {\n return updateIn(collection, [key], notSetValue, updater);\n}\n\nexport { update };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { update as update$1 } from '../functional/update.js';\n\nfunction update(key, notSetValue, updater) {\n return arguments.length === 1\n ? key(this)\n : update$1(this, key, notSetValue, updater);\n}\n\nexport { update };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { updateIn as updateIn$1 } from '../functional/updateIn.js';\n\nfunction updateIn(keyPath, notSetValue, updater) {\n return updateIn$1(this, keyPath, notSetValue, updater);\n}\n\nexport { updateIn };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { KeyedCollection } from '../Collection.js';\nimport { NOT_SET } from '../TrieUtils.js';\nimport { update } from '../functional/update.js';\n\nfunction merge() {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n return mergeIntoKeyedWith(this, iters);\n}\n\nfunction mergeWith(merger) {\n var iters = [], len = arguments.length - 1;\n while ( len-- > 0 ) iters[ len ] = arguments[ len + 1 ];\n\n if (typeof merger !== 'function') {\n throw new TypeError('Invalid merger function: ' + merger);\n }\n return mergeIntoKeyedWith(this, iters, merger);\n}\n\nfunction mergeIntoKeyedWith(collection, collections, merger) {\n var iters = [];\n for (var ii = 0; ii < collections.length; ii++) {\n var collection$1 = KeyedCollection(collections[ii]);\n if (collection$1.size !== 0) {\n iters.push(collection$1);\n }\n }\n if (iters.length === 0) {\n return collection;\n }\n if (\n collection.toSeq().size === 0 &&\n !collection.__ownerID &&\n iters.length === 1\n ) {\n return collection.constructor(iters[0]);\n }\n return collection.withMutations(function (collection) {\n var mergeIntoCollection = merger\n ? function (value, key) {\n update(collection, key, NOT_SET, function (oldVal) { return oldVal === NOT_SET ? value : merger(oldVal, value, key); }\n );\n }\n : function (value, key) {\n collection.set(key, value);\n };\n for (var ii = 0; ii < iters.length; ii++) {\n iters[ii].forEach(mergeIntoCollection);\n }\n });\n}\n\nexport { merge, mergeWith };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { isImmutable } from '../predicates/isImmutable.js';\nimport { isIndexed } from '../predicates/isIndexed.js';\nimport { isKeyed } from '../predicates/isKeyed.js';\nimport { IndexedCollection, KeyedCollection } from '../Collection.js';\nimport { Seq } from '../Seq.js';\nimport hasOwnProperty from '../utils/hasOwnProperty.js';\nimport isDataStructure from '../utils/isDataStructure.js';\nimport shallowCopy from '../utils/shallowCopy.js';\n\nfunction merge(collection) {\n var sources = [], len = arguments.length - 1;\n while ( len-- > 0 ) sources[ len ] = arguments[ len + 1 ];\n\n return mergeWithSources(collection, sources);\n}\n\nfunction mergeWith(merger, collection) {\n var sources = [], len = arguments.length - 2;\n while ( len-- > 0 ) sources[ len ] = arguments[ len + 2 ];\n\n return mergeWithSources(collection, sources, merger);\n}\n\nfunction mergeDeep(collection) {\n var sources = [], len = arguments.length - 1;\n while ( len-- > 0 ) sources[ len ] = arguments[ len + 1 ];\n\n return mergeDeepWithSources(collection, sources);\n}\n\nfunction mergeDeepWith(merger, collection) {\n var sources = [], len = arguments.length - 2;\n while ( len-- > 0 ) sources[ len ] = arguments[ len + 2 ];\n\n return mergeDeepWithSources(collection, sources, merger);\n}\n\nfunction mergeDeepWithSources(collection, sources, merger) {\n return mergeWithSources(collection, sources, deepMergerWith(merger));\n}\n\nfunction mergeWithSources(collection, sources, merger) {\n if (!isDataStructure(collection)) {\n throw new TypeError(\n 'Cannot merge into non-data-structure value: ' + collection\n );\n }\n if (isImmutable(collection)) {\n return typeof merger === 'function' && collection.mergeWith\n ? collection.mergeWith.apply(collection, [ merger ].concat( sources ))\n : collection.merge\n ? collection.merge.apply(collection, sources)\n : collection.concat.apply(collection, sources);\n }\n var isArray = Array.isArray(collection);\n var merged = collection;\n var Collection = isArray ? IndexedCollection : KeyedCollection;\n var mergeItem = isArray\n ? function (value) {\n // Copy on write\n if (merged === collection) {\n merged = shallowCopy(merged);\n }\n merged.push(value);\n }\n : function (value, key) {\n var hasVal = hasOwnProperty.call(merged, key);\n var nextVal =\n hasVal && merger ? merger(merged[key], value, key) : value;\n if (!hasVal || nextVal !== merged[key]) {\n // Copy on write\n if (merged === collection) {\n merged = shallowCopy(merged);\n }\n merged[key] = nextVal;\n }\n };\n for (var i = 0; i < sources.length; i++) {\n Collection(sources[i]).forEach(mergeItem);\n }\n return merged;\n}\n\nfunction deepMergerWith(merger) {\n function deepMerger(oldValue, newValue, key) {\n return isDataStructure(oldValue) &&\n isDataStructure(newValue) &&\n areMergeable(oldValue, newValue)\n ? mergeWithSources(oldValue, [newValue], deepMerger)\n : merger\n ? merger(oldValue, newValue, key)\n : newValue;\n }\n return deepMerger;\n}\n\n/**\n * It's unclear what the desired behavior is for merging two collections that\n * fall into separate categories between keyed, indexed, or set-like, so we only\n * consider them mergeable if they fall into the same category.\n */\nfunction areMergeable(oldDataStructure, newDataStructure) {\n var oldSeq = Seq(oldDataStructure);\n var newSeq = Seq(newDataStructure);\n // This logic assumes that a sequence can only fall into one of the three\n // categories mentioned above (since there's no `isSetLike()` method).\n return (\n isIndexed(oldSeq) === isIndexed(newSeq) &&\n isKeyed(oldSeq) === isKeyed(newSeq)\n );\n}\n\nexport { merge, mergeDeep, mergeDeepWith, mergeDeepWithSources, mergeWith, mergeWithSources };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { mergeDeepWithSources } from '../functional/merge.js';\n\nfunction mergeDeep() {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n return mergeDeepWithSources(this, iters);\n}\n\nfunction mergeDeepWith(merger) {\n var iters = [], len = arguments.length - 1;\n while ( len-- > 0 ) iters[ len ] = arguments[ len + 1 ];\n\n return mergeDeepWithSources(this, iters, merger);\n}\n\nexport { mergeDeep, mergeDeepWith };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { mergeWithSources } from '../functional/merge.js';\nimport { updateIn } from '../functional/updateIn.js';\nimport { emptyMap } from '../Map.js';\n\nfunction mergeIn(keyPath) {\n var iters = [], len = arguments.length - 1;\n while ( len-- > 0 ) iters[ len ] = arguments[ len + 1 ];\n\n return updateIn(this, keyPath, emptyMap(), function (m) { return mergeWithSources(m, iters); });\n}\n\nexport { mergeIn };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { mergeDeepWithSources } from '../functional/merge.js';\nimport { updateIn } from '../functional/updateIn.js';\nimport { emptyMap } from '../Map.js';\n\nfunction mergeDeepIn(keyPath) {\n var iters = [], len = arguments.length - 1;\n while ( len-- > 0 ) iters[ len ] = arguments[ len + 1 ];\n\n return updateIn(this, keyPath, emptyMap(), function (m) { return mergeDeepWithSources(m, iters); }\n );\n}\n\nexport { mergeDeepIn };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nfunction withMutations(fn) {\n var mutable = this.asMutable();\n fn(mutable);\n return mutable.wasAltered() ? mutable.__ensureOwner(this.__ownerID) : this;\n}\n\nexport { withMutations };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { OwnerID } from '../TrieUtils.js';\n\nfunction asMutable() {\n return this.__ownerID ? this : this.__ensureOwner(new OwnerID());\n}\n\nexport { asMutable };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nfunction asImmutable() {\n return this.__ensureOwner();\n}\n\nexport { asImmutable };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nfunction wasAltered() {\n return this.__altered;\n}\n\nexport { wasAltered };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { is } from './is.js';\nimport { Collection, KeyedCollection } from './Collection.js';\nimport { isMap, IS_MAP_SYMBOL } from './predicates/isMap.js';\nimport { isOrdered } from './predicates/isOrdered.js';\nimport { DELETE, NOT_SET, SetRef, MakeRef, MASK, SHIFT, SIZE, OwnerID } from './TrieUtils.js';\nimport { hash } from './Hash.js';\nimport { iteratorDone, Iterator, iteratorValue } from './Iterator.js';\nimport { sortFactory } from './Operations.js';\nimport arrCopy from './utils/arrCopy.js';\nimport assertNotInfinite from './utils/assertNotInfinite.js';\nimport { setIn } from './methods/setIn.js';\nimport { deleteIn } from './methods/deleteIn.js';\nimport { update } from './methods/update.js';\nimport { updateIn } from './methods/updateIn.js';\nimport { merge, mergeWith } from './methods/merge.js';\nimport { mergeDeep, mergeDeepWith } from './methods/mergeDeep.js';\nimport { mergeIn } from './methods/mergeIn.js';\nimport { mergeDeepIn } from './methods/mergeDeepIn.js';\nimport { withMutations } from './methods/withMutations.js';\nimport { asMutable } from './methods/asMutable.js';\nimport { asImmutable } from './methods/asImmutable.js';\nimport { wasAltered } from './methods/wasAltered.js';\nimport { OrderedMap } from './OrderedMap.js';\n\nvar Map = /*@__PURE__*/(function (KeyedCollection) {\n function Map(value) {\n return value === undefined || value === null\n ? emptyMap()\n : isMap(value) && !isOrdered(value)\n ? value\n : emptyMap().withMutations(function (map) {\n var iter = KeyedCollection(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v, k) { return map.set(k, v); });\n });\n }\n\n if ( KeyedCollection ) Map.__proto__ = KeyedCollection;\n Map.prototype = Object.create( KeyedCollection && KeyedCollection.prototype );\n Map.prototype.constructor = Map;\n\n Map.of = function of () {\n var keyValues = [], len = arguments.length;\n while ( len-- ) keyValues[ len ] = arguments[ len ];\n\n return emptyMap().withMutations(function (map) {\n for (var i = 0; i < keyValues.length; i += 2) {\n if (i + 1 >= keyValues.length) {\n throw new Error('Missing value for key: ' + keyValues[i]);\n }\n map.set(keyValues[i], keyValues[i + 1]);\n }\n });\n };\n\n Map.prototype.toString = function toString () {\n return this.__toString('Map {', '}');\n };\n\n // @pragma Access\n\n Map.prototype.get = function get (k, notSetValue) {\n return this._root\n ? this._root.get(0, undefined, k, notSetValue)\n : notSetValue;\n };\n\n // @pragma Modification\n\n Map.prototype.set = function set (k, v) {\n return updateMap(this, k, v);\n };\n\n Map.prototype.remove = function remove (k) {\n return updateMap(this, k, NOT_SET);\n };\n\n Map.prototype.deleteAll = function deleteAll (keys) {\n var collection = Collection(keys);\n\n if (collection.size === 0) {\n return this;\n }\n\n return this.withMutations(function (map) {\n collection.forEach(function (key) { return map.remove(key); });\n });\n };\n\n Map.prototype.clear = function clear () {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._root = null;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyMap();\n };\n\n // @pragma Composition\n\n Map.prototype.sort = function sort (comparator) {\n // Late binding\n return OrderedMap(sortFactory(this, comparator));\n };\n\n Map.prototype.sortBy = function sortBy (mapper, comparator) {\n // Late binding\n return OrderedMap(sortFactory(this, comparator, mapper));\n };\n\n Map.prototype.map = function map (mapper, context) {\n var this$1$1 = this;\n\n return this.withMutations(function (map) {\n map.forEach(function (value, key) {\n map.set(key, mapper.call(context, value, key, this$1$1));\n });\n });\n };\n\n // @pragma Mutability\n\n Map.prototype.__iterator = function __iterator (type, reverse) {\n return new MapIterator(this, type, reverse);\n };\n\n Map.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n var iterations = 0;\n this._root &&\n this._root.iterate(function (entry) {\n iterations++;\n return fn(entry[1], entry[0], this$1$1);\n }, reverse);\n return iterations;\n };\n\n Map.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n if (this.size === 0) {\n return emptyMap();\n }\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n return makeMap(this.size, this._root, ownerID, this.__hash);\n };\n\n return Map;\n}(KeyedCollection));\n\nMap.isMap = isMap;\n\nvar MapPrototype = Map.prototype;\nMapPrototype[IS_MAP_SYMBOL] = true;\nMapPrototype[DELETE] = MapPrototype.remove;\nMapPrototype.removeAll = MapPrototype.deleteAll;\nMapPrototype.setIn = setIn;\nMapPrototype.removeIn = MapPrototype.deleteIn = deleteIn;\nMapPrototype.update = update;\nMapPrototype.updateIn = updateIn;\nMapPrototype.merge = MapPrototype.concat = merge;\nMapPrototype.mergeWith = mergeWith;\nMapPrototype.mergeDeep = mergeDeep;\nMapPrototype.mergeDeepWith = mergeDeepWith;\nMapPrototype.mergeIn = mergeIn;\nMapPrototype.mergeDeepIn = mergeDeepIn;\nMapPrototype.withMutations = withMutations;\nMapPrototype.wasAltered = wasAltered;\nMapPrototype.asImmutable = asImmutable;\nMapPrototype['@@transducer/init'] = MapPrototype.asMutable = asMutable;\nMapPrototype['@@transducer/step'] = function (result, arr) {\n return result.set(arr[0], arr[1]);\n};\nMapPrototype['@@transducer/result'] = function (obj) {\n return obj.asImmutable();\n};\n\n// #pragma Trie Nodes\n\nvar ArrayMapNode = function ArrayMapNode(ownerID, entries) {\n this.ownerID = ownerID;\n this.entries = entries;\n};\n\nArrayMapNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n var entries = this.entries;\n for (var ii = 0, len = entries.length; ii < len; ii++) {\n if (is(key, entries[ii][0])) {\n return entries[ii][1];\n }\n }\n return notSetValue;\n};\n\nArrayMapNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n var removed = value === NOT_SET;\n\n var entries = this.entries;\n var idx = 0;\n var len = entries.length;\n for (; idx < len; idx++) {\n if (is(key, entries[idx][0])) {\n break;\n }\n }\n var exists = idx < len;\n\n if (exists ? entries[idx][1] === value : removed) {\n return this;\n }\n\n SetRef(didAlter);\n (removed || !exists) && SetRef(didChangeSize);\n\n if (removed && entries.length === 1) {\n return; // undefined\n }\n\n if (!exists && !removed && entries.length >= MAX_ARRAY_MAP_SIZE) {\n return createNodes(ownerID, entries, key, value);\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newEntries = isEditable ? entries : arrCopy(entries);\n\n if (exists) {\n if (removed) {\n idx === len - 1\n ? newEntries.pop()\n : (newEntries[idx] = newEntries.pop());\n } else {\n newEntries[idx] = [key, value];\n }\n } else {\n newEntries.push([key, value]);\n }\n\n if (isEditable) {\n this.entries = newEntries;\n return this;\n }\n\n return new ArrayMapNode(ownerID, newEntries);\n};\n\nvar BitmapIndexedNode = function BitmapIndexedNode(ownerID, bitmap, nodes) {\n this.ownerID = ownerID;\n this.bitmap = bitmap;\n this.nodes = nodes;\n};\n\nBitmapIndexedNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var bit = 1 << ((shift === 0 ? keyHash : keyHash >>> shift) & MASK);\n var bitmap = this.bitmap;\n return (bitmap & bit) === 0\n ? notSetValue\n : this.nodes[popCount(bitmap & (bit - 1))].get(\n shift + SHIFT,\n keyHash,\n key,\n notSetValue\n );\n};\n\nBitmapIndexedNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var keyHashFrag = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var bit = 1 << keyHashFrag;\n var bitmap = this.bitmap;\n var exists = (bitmap & bit) !== 0;\n\n if (!exists && value === NOT_SET) {\n return this;\n }\n\n var idx = popCount(bitmap & (bit - 1));\n var nodes = this.nodes;\n var node = exists ? nodes[idx] : undefined;\n var newNode = updateNode(\n node,\n ownerID,\n shift + SHIFT,\n keyHash,\n key,\n value,\n didChangeSize,\n didAlter\n );\n\n if (newNode === node) {\n return this;\n }\n\n if (!exists && newNode && nodes.length >= MAX_BITMAP_INDEXED_SIZE) {\n return expandNodes(ownerID, nodes, bitmap, keyHashFrag, newNode);\n }\n\n if (\n exists &&\n !newNode &&\n nodes.length === 2 &&\n isLeafNode(nodes[idx ^ 1])\n ) {\n return nodes[idx ^ 1];\n }\n\n if (exists && newNode && nodes.length === 1 && isLeafNode(newNode)) {\n return newNode;\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newBitmap = exists ? (newNode ? bitmap : bitmap ^ bit) : bitmap | bit;\n var newNodes = exists\n ? newNode\n ? setAt(nodes, idx, newNode, isEditable)\n : spliceOut(nodes, idx, isEditable)\n : spliceIn(nodes, idx, newNode, isEditable);\n\n if (isEditable) {\n this.bitmap = newBitmap;\n this.nodes = newNodes;\n return this;\n }\n\n return new BitmapIndexedNode(ownerID, newBitmap, newNodes);\n};\n\nvar HashArrayMapNode = function HashArrayMapNode(ownerID, count, nodes) {\n this.ownerID = ownerID;\n this.count = count;\n this.nodes = nodes;\n};\n\nHashArrayMapNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var node = this.nodes[idx];\n return node\n ? node.get(shift + SHIFT, keyHash, key, notSetValue)\n : notSetValue;\n};\n\nHashArrayMapNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var removed = value === NOT_SET;\n var nodes = this.nodes;\n var node = nodes[idx];\n\n if (removed && !node) {\n return this;\n }\n\n var newNode = updateNode(\n node,\n ownerID,\n shift + SHIFT,\n keyHash,\n key,\n value,\n didChangeSize,\n didAlter\n );\n if (newNode === node) {\n return this;\n }\n\n var newCount = this.count;\n if (!node) {\n newCount++;\n } else if (!newNode) {\n newCount--;\n if (newCount < MIN_HASH_ARRAY_MAP_SIZE) {\n return packNodes(ownerID, nodes, newCount, idx);\n }\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newNodes = setAt(nodes, idx, newNode, isEditable);\n\n if (isEditable) {\n this.count = newCount;\n this.nodes = newNodes;\n return this;\n }\n\n return new HashArrayMapNode(ownerID, newCount, newNodes);\n};\n\nvar HashCollisionNode = function HashCollisionNode(ownerID, keyHash, entries) {\n this.ownerID = ownerID;\n this.keyHash = keyHash;\n this.entries = entries;\n};\n\nHashCollisionNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n var entries = this.entries;\n for (var ii = 0, len = entries.length; ii < len; ii++) {\n if (is(key, entries[ii][0])) {\n return entries[ii][1];\n }\n }\n return notSetValue;\n};\n\nHashCollisionNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n\n var removed = value === NOT_SET;\n\n if (keyHash !== this.keyHash) {\n if (removed) {\n return this;\n }\n SetRef(didAlter);\n SetRef(didChangeSize);\n return mergeIntoNode(this, ownerID, shift, keyHash, [key, value]);\n }\n\n var entries = this.entries;\n var idx = 0;\n var len = entries.length;\n for (; idx < len; idx++) {\n if (is(key, entries[idx][0])) {\n break;\n }\n }\n var exists = idx < len;\n\n if (exists ? entries[idx][1] === value : removed) {\n return this;\n }\n\n SetRef(didAlter);\n (removed || !exists) && SetRef(didChangeSize);\n\n if (removed && len === 2) {\n return new ValueNode(ownerID, this.keyHash, entries[idx ^ 1]);\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newEntries = isEditable ? entries : arrCopy(entries);\n\n if (exists) {\n if (removed) {\n idx === len - 1\n ? newEntries.pop()\n : (newEntries[idx] = newEntries.pop());\n } else {\n newEntries[idx] = [key, value];\n }\n } else {\n newEntries.push([key, value]);\n }\n\n if (isEditable) {\n this.entries = newEntries;\n return this;\n }\n\n return new HashCollisionNode(ownerID, this.keyHash, newEntries);\n};\n\nvar ValueNode = function ValueNode(ownerID, keyHash, entry) {\n this.ownerID = ownerID;\n this.keyHash = keyHash;\n this.entry = entry;\n};\n\nValueNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n return is(key, this.entry[0]) ? this.entry[1] : notSetValue;\n};\n\nValueNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n var removed = value === NOT_SET;\n var keyMatch = is(key, this.entry[0]);\n if (keyMatch ? value === this.entry[1] : removed) {\n return this;\n }\n\n SetRef(didAlter);\n\n if (removed) {\n SetRef(didChangeSize);\n return; // undefined\n }\n\n if (keyMatch) {\n if (ownerID && ownerID === this.ownerID) {\n this.entry[1] = value;\n return this;\n }\n return new ValueNode(ownerID, this.keyHash, [key, value]);\n }\n\n SetRef(didChangeSize);\n return mergeIntoNode(this, ownerID, shift, hash(key), [key, value]);\n};\n\n// #pragma Iterators\n\nArrayMapNode.prototype.iterate = HashCollisionNode.prototype.iterate =\n function (fn, reverse) {\n var entries = this.entries;\n for (var ii = 0, maxIndex = entries.length - 1; ii <= maxIndex; ii++) {\n if (fn(entries[reverse ? maxIndex - ii : ii]) === false) {\n return false;\n }\n }\n };\n\nBitmapIndexedNode.prototype.iterate = HashArrayMapNode.prototype.iterate =\n function (fn, reverse) {\n var nodes = this.nodes;\n for (var ii = 0, maxIndex = nodes.length - 1; ii <= maxIndex; ii++) {\n var node = nodes[reverse ? maxIndex - ii : ii];\n if (node && node.iterate(fn, reverse) === false) {\n return false;\n }\n }\n };\n\n// eslint-disable-next-line no-unused-vars\nValueNode.prototype.iterate = function (fn, reverse) {\n return fn(this.entry);\n};\n\nvar MapIterator = /*@__PURE__*/(function (Iterator) {\n function MapIterator(map, type, reverse) {\n this._type = type;\n this._reverse = reverse;\n this._stack = map._root && mapIteratorFrame(map._root);\n }\n\n if ( Iterator ) MapIterator.__proto__ = Iterator;\n MapIterator.prototype = Object.create( Iterator && Iterator.prototype );\n MapIterator.prototype.constructor = MapIterator;\n\n MapIterator.prototype.next = function next () {\n var type = this._type;\n var stack = this._stack;\n while (stack) {\n var node = stack.node;\n var index = stack.index++;\n var maxIndex = (void 0);\n if (node.entry) {\n if (index === 0) {\n return mapIteratorValue(type, node.entry);\n }\n } else if (node.entries) {\n maxIndex = node.entries.length - 1;\n if (index <= maxIndex) {\n return mapIteratorValue(\n type,\n node.entries[this._reverse ? maxIndex - index : index]\n );\n }\n } else {\n maxIndex = node.nodes.length - 1;\n if (index <= maxIndex) {\n var subNode = node.nodes[this._reverse ? maxIndex - index : index];\n if (subNode) {\n if (subNode.entry) {\n return mapIteratorValue(type, subNode.entry);\n }\n stack = this._stack = mapIteratorFrame(subNode, stack);\n }\n continue;\n }\n }\n stack = this._stack = this._stack.__prev;\n }\n return iteratorDone();\n };\n\n return MapIterator;\n}(Iterator));\n\nfunction mapIteratorValue(type, entry) {\n return iteratorValue(type, entry[0], entry[1]);\n}\n\nfunction mapIteratorFrame(node, prev) {\n return {\n node: node,\n index: 0,\n __prev: prev,\n };\n}\n\nfunction makeMap(size, root, ownerID, hash) {\n var map = Object.create(MapPrototype);\n map.size = size;\n map._root = root;\n map.__ownerID = ownerID;\n map.__hash = hash;\n map.__altered = false;\n return map;\n}\n\nvar EMPTY_MAP;\nfunction emptyMap() {\n return EMPTY_MAP || (EMPTY_MAP = makeMap(0));\n}\n\nfunction updateMap(map, k, v) {\n var newRoot;\n var newSize;\n if (!map._root) {\n if (v === NOT_SET) {\n return map;\n }\n newSize = 1;\n newRoot = new ArrayMapNode(map.__ownerID, [[k, v]]);\n } else {\n var didChangeSize = MakeRef();\n var didAlter = MakeRef();\n newRoot = updateNode(\n map._root,\n map.__ownerID,\n 0,\n undefined,\n k,\n v,\n didChangeSize,\n didAlter\n );\n if (!didAlter.value) {\n return map;\n }\n newSize = map.size + (didChangeSize.value ? (v === NOT_SET ? -1 : 1) : 0);\n }\n if (map.__ownerID) {\n map.size = newSize;\n map._root = newRoot;\n map.__hash = undefined;\n map.__altered = true;\n return map;\n }\n return newRoot ? makeMap(newSize, newRoot) : emptyMap();\n}\n\nfunction updateNode(\n node,\n ownerID,\n shift,\n keyHash,\n key,\n value,\n didChangeSize,\n didAlter\n) {\n if (!node) {\n if (value === NOT_SET) {\n return node;\n }\n SetRef(didAlter);\n SetRef(didChangeSize);\n return new ValueNode(ownerID, keyHash, [key, value]);\n }\n return node.update(\n ownerID,\n shift,\n keyHash,\n key,\n value,\n didChangeSize,\n didAlter\n );\n}\n\nfunction isLeafNode(node) {\n return (\n node.constructor === ValueNode || node.constructor === HashCollisionNode\n );\n}\n\nfunction mergeIntoNode(node, ownerID, shift, keyHash, entry) {\n if (node.keyHash === keyHash) {\n return new HashCollisionNode(ownerID, keyHash, [node.entry, entry]);\n }\n\n var idx1 = (shift === 0 ? node.keyHash : node.keyHash >>> shift) & MASK;\n var idx2 = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n\n var newNode;\n var nodes =\n idx1 === idx2\n ? [mergeIntoNode(node, ownerID, shift + SHIFT, keyHash, entry)]\n : ((newNode = new ValueNode(ownerID, keyHash, entry)),\n idx1 < idx2 ? [node, newNode] : [newNode, node]);\n\n return new BitmapIndexedNode(ownerID, (1 << idx1) | (1 << idx2), nodes);\n}\n\nfunction createNodes(ownerID, entries, key, value) {\n if (!ownerID) {\n ownerID = new OwnerID();\n }\n var node = new ValueNode(ownerID, hash(key), [key, value]);\n for (var ii = 0; ii < entries.length; ii++) {\n var entry = entries[ii];\n node = node.update(ownerID, 0, undefined, entry[0], entry[1]);\n }\n return node;\n}\n\nfunction packNodes(ownerID, nodes, count, excluding) {\n var bitmap = 0;\n var packedII = 0;\n var packedNodes = new Array(count);\n for (var ii = 0, bit = 1, len = nodes.length; ii < len; ii++, bit <<= 1) {\n var node = nodes[ii];\n if (node !== undefined && ii !== excluding) {\n bitmap |= bit;\n packedNodes[packedII++] = node;\n }\n }\n return new BitmapIndexedNode(ownerID, bitmap, packedNodes);\n}\n\nfunction expandNodes(ownerID, nodes, bitmap, including, node) {\n var count = 0;\n var expandedNodes = new Array(SIZE);\n for (var ii = 0; bitmap !== 0; ii++, bitmap >>>= 1) {\n expandedNodes[ii] = bitmap & 1 ? nodes[count++] : undefined;\n }\n expandedNodes[including] = node;\n return new HashArrayMapNode(ownerID, count + 1, expandedNodes);\n}\n\nfunction popCount(x) {\n x -= (x >> 1) & 0x55555555;\n x = (x & 0x33333333) + ((x >> 2) & 0x33333333);\n x = (x + (x >> 4)) & 0x0f0f0f0f;\n x += x >> 8;\n x += x >> 16;\n return x & 0x7f;\n}\n\nfunction setAt(array, idx, val, canEdit) {\n var newArray = canEdit ? array : arrCopy(array);\n newArray[idx] = val;\n return newArray;\n}\n\nfunction spliceIn(array, idx, val, canEdit) {\n var newLen = array.length + 1;\n if (canEdit && idx + 1 === newLen) {\n array[idx] = val;\n return array;\n }\n var newArray = new Array(newLen);\n var after = 0;\n for (var ii = 0; ii < newLen; ii++) {\n if (ii === idx) {\n newArray[ii] = val;\n after = -1;\n } else {\n newArray[ii] = array[ii + after];\n }\n }\n return newArray;\n}\n\nfunction spliceOut(array, idx, canEdit) {\n var newLen = array.length - 1;\n if (canEdit && idx === newLen) {\n array.pop();\n return array;\n }\n var newArray = new Array(newLen);\n var after = 0;\n for (var ii = 0; ii < newLen; ii++) {\n if (ii === idx) {\n after = 1;\n }\n newArray[ii] = array[ii + after];\n }\n return newArray;\n}\n\nvar MAX_ARRAY_MAP_SIZE = SIZE / 4;\nvar MAX_BITMAP_INDEXED_SIZE = SIZE / 2;\nvar MIN_HASH_ARRAY_MAP_SIZE = SIZE / 4;\n\nexport { Map, emptyMap };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar IS_LIST_SYMBOL = '@@__IMMUTABLE_LIST__@@';\n\nfunction isList(maybeList) {\n return Boolean(maybeList && maybeList[IS_LIST_SYMBOL]);\n}\n\nexport { IS_LIST_SYMBOL, isList };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { wrapIndex, MASK, SHIFT, wholeSlice, DELETE, SetRef, OwnerID, SIZE, MakeRef, resolveEnd, resolveBegin } from './TrieUtils.js';\nimport { isList, IS_LIST_SYMBOL } from './predicates/isList.js';\nimport { IndexedCollection } from './Collection.js';\nimport { hasIterator, Iterator, iteratorDone, iteratorValue } from './Iterator.js';\nimport { setIn } from './methods/setIn.js';\nimport { deleteIn } from './methods/deleteIn.js';\nimport { update } from './methods/update.js';\nimport { updateIn } from './methods/updateIn.js';\nimport { mergeIn } from './methods/mergeIn.js';\nimport { mergeDeepIn } from './methods/mergeDeepIn.js';\nimport { withMutations } from './methods/withMutations.js';\nimport { asMutable } from './methods/asMutable.js';\nimport { asImmutable } from './methods/asImmutable.js';\nimport { wasAltered } from './methods/wasAltered.js';\nimport assertNotInfinite from './utils/assertNotInfinite.js';\n\nvar List = /*@__PURE__*/(function (IndexedCollection) {\n function List(value) {\n var empty = emptyList();\n if (value === undefined || value === null) {\n return empty;\n }\n if (isList(value)) {\n return value;\n }\n var iter = IndexedCollection(value);\n var size = iter.size;\n if (size === 0) {\n return empty;\n }\n assertNotInfinite(size);\n if (size > 0 && size < SIZE) {\n return makeList(0, size, SHIFT, null, new VNode(iter.toArray()));\n }\n return empty.withMutations(function (list) {\n list.setSize(size);\n iter.forEach(function (v, i) { return list.set(i, v); });\n });\n }\n\n if ( IndexedCollection ) List.__proto__ = IndexedCollection;\n List.prototype = Object.create( IndexedCollection && IndexedCollection.prototype );\n List.prototype.constructor = List;\n\n List.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n List.prototype.toString = function toString () {\n return this.__toString('List [', ']');\n };\n\n // @pragma Access\n\n List.prototype.get = function get (index, notSetValue) {\n index = wrapIndex(this, index);\n if (index >= 0 && index < this.size) {\n index += this._origin;\n var node = listNodeFor(this, index);\n return node && node.array[index & MASK];\n }\n return notSetValue;\n };\n\n // @pragma Modification\n\n List.prototype.set = function set (index, value) {\n return updateList(this, index, value);\n };\n\n List.prototype.remove = function remove (index) {\n return !this.has(index)\n ? this\n : index === 0\n ? this.shift()\n : index === this.size - 1\n ? this.pop()\n : this.splice(index, 1);\n };\n\n List.prototype.insert = function insert (index, value) {\n return this.splice(index, 0, value);\n };\n\n List.prototype.clear = function clear () {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = this._origin = this._capacity = 0;\n this._level = SHIFT;\n this._root = this._tail = this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyList();\n };\n\n List.prototype.push = function push (/*...values*/) {\n var values = arguments;\n var oldSize = this.size;\n return this.withMutations(function (list) {\n setListBounds(list, 0, oldSize + values.length);\n for (var ii = 0; ii < values.length; ii++) {\n list.set(oldSize + ii, values[ii]);\n }\n });\n };\n\n List.prototype.pop = function pop () {\n return setListBounds(this, 0, -1);\n };\n\n List.prototype.unshift = function unshift (/*...values*/) {\n var values = arguments;\n return this.withMutations(function (list) {\n setListBounds(list, -values.length);\n for (var ii = 0; ii < values.length; ii++) {\n list.set(ii, values[ii]);\n }\n });\n };\n\n List.prototype.shift = function shift () {\n return setListBounds(this, 1);\n };\n\n // @pragma Composition\n\n List.prototype.concat = function concat (/*...collections*/) {\n var arguments$1 = arguments;\n\n var seqs = [];\n for (var i = 0; i < arguments.length; i++) {\n var argument = arguments$1[i];\n var seq = IndexedCollection(\n typeof argument !== 'string' && hasIterator(argument)\n ? argument\n : [argument]\n );\n if (seq.size !== 0) {\n seqs.push(seq);\n }\n }\n if (seqs.length === 0) {\n return this;\n }\n if (this.size === 0 && !this.__ownerID && seqs.length === 1) {\n return this.constructor(seqs[0]);\n }\n return this.withMutations(function (list) {\n seqs.forEach(function (seq) { return seq.forEach(function (value) { return list.push(value); }); });\n });\n };\n\n List.prototype.setSize = function setSize (size) {\n return setListBounds(this, 0, size);\n };\n\n List.prototype.map = function map (mapper, context) {\n var this$1$1 = this;\n\n return this.withMutations(function (list) {\n for (var i = 0; i < this$1$1.size; i++) {\n list.set(i, mapper.call(context, list.get(i), i, this$1$1));\n }\n });\n };\n\n // @pragma Iteration\n\n List.prototype.slice = function slice (begin, end) {\n var size = this.size;\n if (wholeSlice(begin, end, size)) {\n return this;\n }\n return setListBounds(\n this,\n resolveBegin(begin, size),\n resolveEnd(end, size)\n );\n };\n\n List.prototype.__iterator = function __iterator (type, reverse) {\n var index = reverse ? this.size : 0;\n var values = iterateList(this, reverse);\n return new Iterator(function () {\n var value = values();\n return value === DONE\n ? iteratorDone()\n : iteratorValue(type, reverse ? --index : index++, value);\n });\n };\n\n List.prototype.__iterate = function __iterate (fn, reverse) {\n var index = reverse ? this.size : 0;\n var values = iterateList(this, reverse);\n var value;\n while ((value = values()) !== DONE) {\n if (fn(value, reverse ? --index : index++, this) === false) {\n break;\n }\n }\n return index;\n };\n\n List.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n if (this.size === 0) {\n return emptyList();\n }\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n return makeList(\n this._origin,\n this._capacity,\n this._level,\n this._root,\n this._tail,\n ownerID,\n this.__hash\n );\n };\n\n return List;\n}(IndexedCollection));\n\nList.isList = isList;\n\nvar ListPrototype = List.prototype;\nListPrototype[IS_LIST_SYMBOL] = true;\nListPrototype[DELETE] = ListPrototype.remove;\nListPrototype.merge = ListPrototype.concat;\nListPrototype.setIn = setIn;\nListPrototype.deleteIn = ListPrototype.removeIn = deleteIn;\nListPrototype.update = update;\nListPrototype.updateIn = updateIn;\nListPrototype.mergeIn = mergeIn;\nListPrototype.mergeDeepIn = mergeDeepIn;\nListPrototype.withMutations = withMutations;\nListPrototype.wasAltered = wasAltered;\nListPrototype.asImmutable = asImmutable;\nListPrototype['@@transducer/init'] = ListPrototype.asMutable = asMutable;\nListPrototype['@@transducer/step'] = function (result, arr) {\n return result.push(arr);\n};\nListPrototype['@@transducer/result'] = function (obj) {\n return obj.asImmutable();\n};\n\nvar VNode = function VNode(array, ownerID) {\n this.array = array;\n this.ownerID = ownerID;\n};\n\n// TODO: seems like these methods are very similar\n\nVNode.prototype.removeBefore = function removeBefore (ownerID, level, index) {\n if (index === level ? 1 << level : this.array.length === 0) {\n return this;\n }\n var originIndex = (index >>> level) & MASK;\n if (originIndex >= this.array.length) {\n return new VNode([], ownerID);\n }\n var removingFirst = originIndex === 0;\n var newChild;\n if (level > 0) {\n var oldChild = this.array[originIndex];\n newChild =\n oldChild && oldChild.removeBefore(ownerID, level - SHIFT, index);\n if (newChild === oldChild && removingFirst) {\n return this;\n }\n }\n if (removingFirst && !newChild) {\n return this;\n }\n var editable = editableVNode(this, ownerID);\n if (!removingFirst) {\n for (var ii = 0; ii < originIndex; ii++) {\n editable.array[ii] = undefined;\n }\n }\n if (newChild) {\n editable.array[originIndex] = newChild;\n }\n return editable;\n};\n\nVNode.prototype.removeAfter = function removeAfter (ownerID, level, index) {\n if (index === (level ? 1 << level : 0) || this.array.length === 0) {\n return this;\n }\n var sizeIndex = ((index - 1) >>> level) & MASK;\n if (sizeIndex >= this.array.length) {\n return this;\n }\n\n var newChild;\n if (level > 0) {\n var oldChild = this.array[sizeIndex];\n newChild =\n oldChild && oldChild.removeAfter(ownerID, level - SHIFT, index);\n if (newChild === oldChild && sizeIndex === this.array.length - 1) {\n return this;\n }\n }\n\n var editable = editableVNode(this, ownerID);\n editable.array.splice(sizeIndex + 1);\n if (newChild) {\n editable.array[sizeIndex] = newChild;\n }\n return editable;\n};\n\nvar DONE = {};\n\nfunction iterateList(list, reverse) {\n var left = list._origin;\n var right = list._capacity;\n var tailPos = getTailOffset(right);\n var tail = list._tail;\n\n return iterateNodeOrLeaf(list._root, list._level, 0);\n\n function iterateNodeOrLeaf(node, level, offset) {\n return level === 0\n ? iterateLeaf(node, offset)\n : iterateNode(node, level, offset);\n }\n\n function iterateLeaf(node, offset) {\n var array = offset === tailPos ? tail && tail.array : node && node.array;\n var from = offset > left ? 0 : left - offset;\n var to = right - offset;\n if (to > SIZE) {\n to = SIZE;\n }\n return function () {\n if (from === to) {\n return DONE;\n }\n var idx = reverse ? --to : from++;\n return array && array[idx];\n };\n }\n\n function iterateNode(node, level, offset) {\n var values;\n var array = node && node.array;\n var from = offset > left ? 0 : (left - offset) >> level;\n var to = ((right - offset) >> level) + 1;\n if (to > SIZE) {\n to = SIZE;\n }\n return function () {\n while (true) {\n if (values) {\n var value = values();\n if (value !== DONE) {\n return value;\n }\n values = null;\n }\n if (from === to) {\n return DONE;\n }\n var idx = reverse ? --to : from++;\n values = iterateNodeOrLeaf(\n array && array[idx],\n level - SHIFT,\n offset + (idx << level)\n );\n }\n };\n }\n}\n\nfunction makeList(origin, capacity, level, root, tail, ownerID, hash) {\n var list = Object.create(ListPrototype);\n list.size = capacity - origin;\n list._origin = origin;\n list._capacity = capacity;\n list._level = level;\n list._root = root;\n list._tail = tail;\n list.__ownerID = ownerID;\n list.__hash = hash;\n list.__altered = false;\n return list;\n}\n\nvar EMPTY_LIST;\nfunction emptyList() {\n return EMPTY_LIST || (EMPTY_LIST = makeList(0, 0, SHIFT));\n}\n\nfunction updateList(list, index, value) {\n index = wrapIndex(list, index);\n\n if (index !== index) {\n return list;\n }\n\n if (index >= list.size || index < 0) {\n return list.withMutations(function (list) {\n index < 0\n ? setListBounds(list, index).set(0, value)\n : setListBounds(list, 0, index + 1).set(index, value);\n });\n }\n\n index += list._origin;\n\n var newTail = list._tail;\n var newRoot = list._root;\n var didAlter = MakeRef();\n if (index >= getTailOffset(list._capacity)) {\n newTail = updateVNode(newTail, list.__ownerID, 0, index, value, didAlter);\n } else {\n newRoot = updateVNode(\n newRoot,\n list.__ownerID,\n list._level,\n index,\n value,\n didAlter\n );\n }\n\n if (!didAlter.value) {\n return list;\n }\n\n if (list.__ownerID) {\n list._root = newRoot;\n list._tail = newTail;\n list.__hash = undefined;\n list.__altered = true;\n return list;\n }\n return makeList(list._origin, list._capacity, list._level, newRoot, newTail);\n}\n\nfunction updateVNode(node, ownerID, level, index, value, didAlter) {\n var idx = (index >>> level) & MASK;\n var nodeHas = node && idx < node.array.length;\n if (!nodeHas && value === undefined) {\n return node;\n }\n\n var newNode;\n\n if (level > 0) {\n var lowerNode = node && node.array[idx];\n var newLowerNode = updateVNode(\n lowerNode,\n ownerID,\n level - SHIFT,\n index,\n value,\n didAlter\n );\n if (newLowerNode === lowerNode) {\n return node;\n }\n newNode = editableVNode(node, ownerID);\n newNode.array[idx] = newLowerNode;\n return newNode;\n }\n\n if (nodeHas && node.array[idx] === value) {\n return node;\n }\n\n if (didAlter) {\n SetRef(didAlter);\n }\n\n newNode = editableVNode(node, ownerID);\n if (value === undefined && idx === newNode.array.length - 1) {\n newNode.array.pop();\n } else {\n newNode.array[idx] = value;\n }\n return newNode;\n}\n\nfunction editableVNode(node, ownerID) {\n if (ownerID && node && ownerID === node.ownerID) {\n return node;\n }\n return new VNode(node ? node.array.slice() : [], ownerID);\n}\n\nfunction listNodeFor(list, rawIndex) {\n if (rawIndex >= getTailOffset(list._capacity)) {\n return list._tail;\n }\n if (rawIndex < 1 << (list._level + SHIFT)) {\n var node = list._root;\n var level = list._level;\n while (node && level > 0) {\n node = node.array[(rawIndex >>> level) & MASK];\n level -= SHIFT;\n }\n return node;\n }\n}\n\nfunction setListBounds(list, begin, end) {\n // Sanitize begin & end using this shorthand for ToInt32(argument)\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32\n if (begin !== undefined) {\n begin |= 0;\n }\n if (end !== undefined) {\n end |= 0;\n }\n var owner = list.__ownerID || new OwnerID();\n var oldOrigin = list._origin;\n var oldCapacity = list._capacity;\n var newOrigin = oldOrigin + begin;\n var newCapacity =\n end === undefined\n ? oldCapacity\n : end < 0\n ? oldCapacity + end\n : oldOrigin + end;\n if (newOrigin === oldOrigin && newCapacity === oldCapacity) {\n return list;\n }\n\n // If it's going to end after it starts, it's empty.\n if (newOrigin >= newCapacity) {\n return list.clear();\n }\n\n var newLevel = list._level;\n var newRoot = list._root;\n\n // New origin might need creating a higher root.\n var offsetShift = 0;\n while (newOrigin + offsetShift < 0) {\n newRoot = new VNode(\n newRoot && newRoot.array.length ? [undefined, newRoot] : [],\n owner\n );\n newLevel += SHIFT;\n offsetShift += 1 << newLevel;\n }\n if (offsetShift) {\n newOrigin += offsetShift;\n oldOrigin += offsetShift;\n newCapacity += offsetShift;\n oldCapacity += offsetShift;\n }\n\n var oldTailOffset = getTailOffset(oldCapacity);\n var newTailOffset = getTailOffset(newCapacity);\n\n // New size might need creating a higher root.\n while (newTailOffset >= 1 << (newLevel + SHIFT)) {\n newRoot = new VNode(\n newRoot && newRoot.array.length ? [newRoot] : [],\n owner\n );\n newLevel += SHIFT;\n }\n\n // Locate or create the new tail.\n var oldTail = list._tail;\n var newTail =\n newTailOffset < oldTailOffset\n ? listNodeFor(list, newCapacity - 1)\n : newTailOffset > oldTailOffset\n ? new VNode([], owner)\n : oldTail;\n\n // Merge Tail into tree.\n if (\n oldTail &&\n newTailOffset > oldTailOffset &&\n newOrigin < oldCapacity &&\n oldTail.array.length\n ) {\n newRoot = editableVNode(newRoot, owner);\n var node = newRoot;\n for (var level = newLevel; level > SHIFT; level -= SHIFT) {\n var idx = (oldTailOffset >>> level) & MASK;\n node = node.array[idx] = editableVNode(node.array[idx], owner);\n }\n node.array[(oldTailOffset >>> SHIFT) & MASK] = oldTail;\n }\n\n // If the size has been reduced, there's a chance the tail needs to be trimmed.\n if (newCapacity < oldCapacity) {\n newTail = newTail && newTail.removeAfter(owner, 0, newCapacity);\n }\n\n // If the new origin is within the tail, then we do not need a root.\n if (newOrigin >= newTailOffset) {\n newOrigin -= newTailOffset;\n newCapacity -= newTailOffset;\n newLevel = SHIFT;\n newRoot = null;\n newTail = newTail && newTail.removeBefore(owner, 0, newOrigin);\n\n // Otherwise, if the root has been trimmed, garbage collect.\n } else if (newOrigin > oldOrigin || newTailOffset < oldTailOffset) {\n offsetShift = 0;\n\n // Identify the new top root node of the subtree of the old root.\n while (newRoot) {\n var beginIndex = (newOrigin >>> newLevel) & MASK;\n if ((beginIndex !== newTailOffset >>> newLevel) & MASK) {\n break;\n }\n if (beginIndex) {\n offsetShift += (1 << newLevel) * beginIndex;\n }\n newLevel -= SHIFT;\n newRoot = newRoot.array[beginIndex];\n }\n\n // Trim the new sides of the new root.\n if (newRoot && newOrigin > oldOrigin) {\n newRoot = newRoot.removeBefore(owner, newLevel, newOrigin - offsetShift);\n }\n if (newRoot && newTailOffset < oldTailOffset) {\n newRoot = newRoot.removeAfter(\n owner,\n newLevel,\n newTailOffset - offsetShift\n );\n }\n if (offsetShift) {\n newOrigin -= offsetShift;\n newCapacity -= offsetShift;\n }\n }\n\n if (list.__ownerID) {\n list.size = newCapacity - newOrigin;\n list._origin = newOrigin;\n list._capacity = newCapacity;\n list._level = newLevel;\n list._root = newRoot;\n list._tail = newTail;\n list.__hash = undefined;\n list.__altered = true;\n return list;\n }\n return makeList(newOrigin, newCapacity, newLevel, newRoot, newTail);\n}\n\nfunction getTailOffset(size) {\n return size < SIZE ? 0 : ((size - 1) >>> SHIFT) << SHIFT;\n}\n\nexport { List, emptyList };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { KeyedCollection } from './Collection.js';\nimport { IS_ORDERED_SYMBOL } from './predicates/isOrdered.js';\nimport { isOrderedMap } from './predicates/isOrderedMap.js';\nimport { Map, emptyMap } from './Map.js';\nimport { emptyList } from './List.js';\nimport { DELETE, NOT_SET, SIZE } from './TrieUtils.js';\nimport assertNotInfinite from './utils/assertNotInfinite.js';\n\nvar OrderedMap = /*@__PURE__*/(function (Map) {\n function OrderedMap(value) {\n return value === undefined || value === null\n ? emptyOrderedMap()\n : isOrderedMap(value)\n ? value\n : emptyOrderedMap().withMutations(function (map) {\n var iter = KeyedCollection(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v, k) { return map.set(k, v); });\n });\n }\n\n if ( Map ) OrderedMap.__proto__ = Map;\n OrderedMap.prototype = Object.create( Map && Map.prototype );\n OrderedMap.prototype.constructor = OrderedMap;\n\n OrderedMap.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n OrderedMap.prototype.toString = function toString () {\n return this.__toString('OrderedMap {', '}');\n };\n\n // @pragma Access\n\n OrderedMap.prototype.get = function get (k, notSetValue) {\n var index = this._map.get(k);\n return index !== undefined ? this._list.get(index)[1] : notSetValue;\n };\n\n // @pragma Modification\n\n OrderedMap.prototype.clear = function clear () {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._map.clear();\n this._list.clear();\n this.__altered = true;\n return this;\n }\n return emptyOrderedMap();\n };\n\n OrderedMap.prototype.set = function set (k, v) {\n return updateOrderedMap(this, k, v);\n };\n\n OrderedMap.prototype.remove = function remove (k) {\n return updateOrderedMap(this, k, NOT_SET);\n };\n\n OrderedMap.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n return this._list.__iterate(\n function (entry) { return entry && fn(entry[1], entry[0], this$1$1); },\n reverse\n );\n };\n\n OrderedMap.prototype.__iterator = function __iterator (type, reverse) {\n return this._list.fromEntrySeq().__iterator(type, reverse);\n };\n\n OrderedMap.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newMap = this._map.__ensureOwner(ownerID);\n var newList = this._list.__ensureOwner(ownerID);\n if (!ownerID) {\n if (this.size === 0) {\n return emptyOrderedMap();\n }\n this.__ownerID = ownerID;\n this.__altered = false;\n this._map = newMap;\n this._list = newList;\n return this;\n }\n return makeOrderedMap(newMap, newList, ownerID, this.__hash);\n };\n\n return OrderedMap;\n}(Map));\n\nOrderedMap.isOrderedMap = isOrderedMap;\n\nOrderedMap.prototype[IS_ORDERED_SYMBOL] = true;\nOrderedMap.prototype[DELETE] = OrderedMap.prototype.remove;\n\nfunction makeOrderedMap(map, list, ownerID, hash) {\n var omap = Object.create(OrderedMap.prototype);\n omap.size = map ? map.size : 0;\n omap._map = map;\n omap._list = list;\n omap.__ownerID = ownerID;\n omap.__hash = hash;\n omap.__altered = false;\n return omap;\n}\n\nvar EMPTY_ORDERED_MAP;\nfunction emptyOrderedMap() {\n return (\n EMPTY_ORDERED_MAP ||\n (EMPTY_ORDERED_MAP = makeOrderedMap(emptyMap(), emptyList()))\n );\n}\n\nfunction updateOrderedMap(omap, k, v) {\n var map = omap._map;\n var list = omap._list;\n var i = map.get(k);\n var has = i !== undefined;\n var newMap;\n var newList;\n if (v === NOT_SET) {\n // removed\n if (!has) {\n return omap;\n }\n if (list.size >= SIZE && list.size >= map.size * 2) {\n newList = list.filter(function (entry, idx) { return entry !== undefined && i !== idx; });\n newMap = newList\n .toKeyedSeq()\n .map(function (entry) { return entry[0]; })\n .flip()\n .toMap();\n if (omap.__ownerID) {\n newMap.__ownerID = newList.__ownerID = omap.__ownerID;\n }\n } else {\n newMap = map.remove(k);\n newList = i === list.size - 1 ? list.pop() : list.set(i, undefined);\n }\n } else if (has) {\n if (v === list.get(i)[1]) {\n return omap;\n }\n newMap = map;\n newList = list.set(i, [k, v]);\n } else {\n newMap = map.set(k, list.size);\n newList = list.set(list.size, [k, v]);\n }\n if (omap.__ownerID) {\n omap.size = newMap.size;\n omap._map = newMap;\n omap._list = newList;\n omap.__hash = undefined;\n omap.__altered = true;\n return omap;\n }\n return makeOrderedMap(newMap, newList);\n}\n\nexport { OrderedMap, emptyOrderedMap };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar IS_STACK_SYMBOL = '@@__IMMUTABLE_STACK__@@';\n\nfunction isStack(maybeStack) {\n return Boolean(maybeStack && maybeStack[IS_STACK_SYMBOL]);\n}\n\nexport { IS_STACK_SYMBOL, isStack };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { wrapIndex, wholeSlice, resolveBegin, resolveEnd } from './TrieUtils.js';\nimport { IndexedCollection } from './Collection.js';\nimport { ArraySeq } from './Seq.js';\nimport { Iterator, iteratorValue, iteratorDone } from './Iterator.js';\nimport { isStack, IS_STACK_SYMBOL } from './predicates/isStack.js';\nimport assertNotInfinite from './utils/assertNotInfinite.js';\nimport { asImmutable } from './methods/asImmutable.js';\nimport { asMutable } from './methods/asMutable.js';\nimport { wasAltered } from './methods/wasAltered.js';\nimport { withMutations } from './methods/withMutations.js';\n\nvar Stack = /*@__PURE__*/(function (IndexedCollection) {\n function Stack(value) {\n return value === undefined || value === null\n ? emptyStack()\n : isStack(value)\n ? value\n : emptyStack().pushAll(value);\n }\n\n if ( IndexedCollection ) Stack.__proto__ = IndexedCollection;\n Stack.prototype = Object.create( IndexedCollection && IndexedCollection.prototype );\n Stack.prototype.constructor = Stack;\n\n Stack.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n Stack.prototype.toString = function toString () {\n return this.__toString('Stack [', ']');\n };\n\n // @pragma Access\n\n Stack.prototype.get = function get (index, notSetValue) {\n var head = this._head;\n index = wrapIndex(this, index);\n while (head && index--) {\n head = head.next;\n }\n return head ? head.value : notSetValue;\n };\n\n Stack.prototype.peek = function peek () {\n return this._head && this._head.value;\n };\n\n // @pragma Modification\n\n Stack.prototype.push = function push (/*...values*/) {\n var arguments$1 = arguments;\n\n if (arguments.length === 0) {\n return this;\n }\n var newSize = this.size + arguments.length;\n var head = this._head;\n for (var ii = arguments.length - 1; ii >= 0; ii--) {\n head = {\n value: arguments$1[ii],\n next: head,\n };\n }\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n Stack.prototype.pushAll = function pushAll (iter) {\n iter = IndexedCollection(iter);\n if (iter.size === 0) {\n return this;\n }\n if (this.size === 0 && isStack(iter)) {\n return iter;\n }\n assertNotInfinite(iter.size);\n var newSize = this.size;\n var head = this._head;\n iter.__iterate(function (value) {\n newSize++;\n head = {\n value: value,\n next: head,\n };\n }, /* reverse */ true);\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n Stack.prototype.pop = function pop () {\n return this.slice(1);\n };\n\n Stack.prototype.clear = function clear () {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._head = undefined;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyStack();\n };\n\n Stack.prototype.slice = function slice (begin, end) {\n if (wholeSlice(begin, end, this.size)) {\n return this;\n }\n var resolvedBegin = resolveBegin(begin, this.size);\n var resolvedEnd = resolveEnd(end, this.size);\n if (resolvedEnd !== this.size) {\n // super.slice(begin, end);\n return IndexedCollection.prototype.slice.call(this, begin, end);\n }\n var newSize = this.size - resolvedBegin;\n var head = this._head;\n while (resolvedBegin--) {\n head = head.next;\n }\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n // @pragma Mutability\n\n Stack.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n if (this.size === 0) {\n return emptyStack();\n }\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n return makeStack(this.size, this._head, ownerID, this.__hash);\n };\n\n // @pragma Iteration\n\n Stack.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n if (reverse) {\n return new ArraySeq(this.toArray()).__iterate(\n function (v, k) { return fn(v, k, this$1$1); },\n reverse\n );\n }\n var iterations = 0;\n var node = this._head;\n while (node) {\n if (fn(node.value, iterations++, this) === false) {\n break;\n }\n node = node.next;\n }\n return iterations;\n };\n\n Stack.prototype.__iterator = function __iterator (type, reverse) {\n if (reverse) {\n return new ArraySeq(this.toArray()).__iterator(type, reverse);\n }\n var iterations = 0;\n var node = this._head;\n return new Iterator(function () {\n if (node) {\n var value = node.value;\n node = node.next;\n return iteratorValue(type, iterations++, value);\n }\n return iteratorDone();\n });\n };\n\n return Stack;\n}(IndexedCollection));\n\nStack.isStack = isStack;\n\nvar StackPrototype = Stack.prototype;\nStackPrototype[IS_STACK_SYMBOL] = true;\nStackPrototype.shift = StackPrototype.pop;\nStackPrototype.unshift = StackPrototype.push;\nStackPrototype.unshiftAll = StackPrototype.pushAll;\nStackPrototype.withMutations = withMutations;\nStackPrototype.wasAltered = wasAltered;\nStackPrototype.asImmutable = asImmutable;\nStackPrototype['@@transducer/init'] = StackPrototype.asMutable = asMutable;\nStackPrototype['@@transducer/step'] = function (result, arr) {\n return result.unshift(arr);\n};\nStackPrototype['@@transducer/result'] = function (obj) {\n return obj.asImmutable();\n};\n\nfunction makeStack(size, head, ownerID, hash) {\n var map = Object.create(StackPrototype);\n map.size = size;\n map._head = head;\n map.__ownerID = ownerID;\n map.__hash = hash;\n map.__altered = false;\n return map;\n}\n\nvar EMPTY_STACK;\nfunction emptyStack() {\n return EMPTY_STACK || (EMPTY_STACK = makeStack(0));\n}\n\nexport { Stack };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar IS_SET_SYMBOL = '@@__IMMUTABLE_SET__@@';\n\nfunction isSet(maybeSet) {\n return Boolean(maybeSet && maybeSet[IS_SET_SYMBOL]);\n}\n\nexport { IS_SET_SYMBOL, isSet };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { isSet } from './isSet.js';\nimport { isOrdered } from './isOrdered.js';\n\nfunction isOrderedSet(maybeOrderedSet) {\n return isSet(maybeOrderedSet) && isOrdered(maybeOrderedSet);\n}\n\nexport { isOrderedSet };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { is } from '../is.js';\nimport { NOT_SET } from '../TrieUtils.js';\nimport { isCollection } from '../predicates/isCollection.js';\nimport { isKeyed } from '../predicates/isKeyed.js';\nimport { isIndexed } from '../predicates/isIndexed.js';\nimport { isAssociative } from '../predicates/isAssociative.js';\nimport { isOrdered } from '../predicates/isOrdered.js';\n\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (\n !isCollection(b) ||\n (a.size !== undefined && b.size !== undefined && a.size !== b.size) ||\n (a.__hash !== undefined &&\n b.__hash !== undefined &&\n a.__hash !== b.__hash) ||\n isKeyed(a) !== isKeyed(b) ||\n isIndexed(a) !== isIndexed(b) ||\n isOrdered(a) !== isOrdered(b)\n ) {\n return false;\n }\n\n if (a.size === 0 && b.size === 0) {\n return true;\n }\n\n var notAssociative = !isAssociative(a);\n\n if (isOrdered(a)) {\n var entries = a.entries();\n return (\n b.every(function (v, k) {\n var entry = entries.next().value;\n return entry && is(entry[1], v) && (notAssociative || is(entry[0], k));\n }) && entries.next().done\n );\n }\n\n var flipped = false;\n\n if (a.size === undefined) {\n if (b.size === undefined) {\n if (typeof a.cacheResult === 'function') {\n a.cacheResult();\n }\n } else {\n flipped = true;\n var _ = a;\n a = b;\n b = _;\n }\n }\n\n var allEqual = true;\n var bSize = b.__iterate(function (v, k) {\n if (\n notAssociative\n ? !a.has(v)\n : flipped\n ? !is(v, a.get(k, NOT_SET))\n : !is(a.get(k, NOT_SET), v)\n ) {\n allEqual = false;\n return false;\n }\n });\n\n return allEqual && a.size === bSize;\n}\n\nexport { deepEqual as default };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n/**\n * Contributes additional methods to a constructor\n */\nfunction mixin(ctor, methods) {\n var keyCopier = function (key) {\n ctor.prototype[key] = methods[key];\n };\n Object.keys(methods).forEach(keyCopier);\n Object.getOwnPropertySymbols &&\n Object.getOwnPropertySymbols(methods).forEach(keyCopier);\n return ctor;\n}\n\nexport { mixin as default };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { Seq } from './Seq.js';\nimport { isCollection } from './predicates/isCollection.js';\nimport { isKeyed } from './predicates/isKeyed.js';\nimport isDataStructure from './utils/isDataStructure.js';\n\nfunction toJS(value) {\n if (!value || typeof value !== 'object') {\n return value;\n }\n if (!isCollection(value)) {\n if (!isDataStructure(value)) {\n return value;\n }\n value = Seq(value);\n }\n if (isKeyed(value)) {\n var result$1 = {};\n value.__iterate(function (v, k) {\n result$1[k] = toJS(v);\n });\n return result$1;\n }\n var result = [];\n value.__iterate(function (v) {\n result.push(toJS(v));\n });\n return result;\n}\n\nexport { toJS };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { KeyedCollection, Collection, SetCollection } from './Collection.js';\nimport { isOrdered } from './predicates/isOrdered.js';\nimport { isSet, IS_SET_SYMBOL } from './predicates/isSet.js';\nimport { emptyMap } from './Map.js';\nimport { DELETE } from './TrieUtils.js';\nimport { sortFactory } from './Operations.js';\nimport assertNotInfinite from './utils/assertNotInfinite.js';\nimport { asImmutable } from './methods/asImmutable.js';\nimport { asMutable } from './methods/asMutable.js';\nimport { withMutations } from './methods/withMutations.js';\nimport { OrderedSet } from './OrderedSet.js';\n\nvar Set = /*@__PURE__*/(function (SetCollection) {\n function Set(value) {\n return value === undefined || value === null\n ? emptySet()\n : isSet(value) && !isOrdered(value)\n ? value\n : emptySet().withMutations(function (set) {\n var iter = SetCollection(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v) { return set.add(v); });\n });\n }\n\n if ( SetCollection ) Set.__proto__ = SetCollection;\n Set.prototype = Object.create( SetCollection && SetCollection.prototype );\n Set.prototype.constructor = Set;\n\n Set.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n Set.fromKeys = function fromKeys (value) {\n return this(KeyedCollection(value).keySeq());\n };\n\n Set.intersect = function intersect (sets) {\n sets = Collection(sets).toArray();\n return sets.length\n ? SetPrototype.intersect.apply(Set(sets.pop()), sets)\n : emptySet();\n };\n\n Set.union = function union (sets) {\n sets = Collection(sets).toArray();\n return sets.length\n ? SetPrototype.union.apply(Set(sets.pop()), sets)\n : emptySet();\n };\n\n Set.prototype.toString = function toString () {\n return this.__toString('Set {', '}');\n };\n\n // @pragma Access\n\n Set.prototype.has = function has (value) {\n return this._map.has(value);\n };\n\n // @pragma Modification\n\n Set.prototype.add = function add (value) {\n return updateSet(this, this._map.set(value, value));\n };\n\n Set.prototype.remove = function remove (value) {\n return updateSet(this, this._map.remove(value));\n };\n\n Set.prototype.clear = function clear () {\n return updateSet(this, this._map.clear());\n };\n\n // @pragma Composition\n\n Set.prototype.map = function map (mapper, context) {\n var this$1$1 = this;\n\n // keep track if the set is altered by the map function\n var didChanges = false;\n\n var newMap = updateSet(\n this,\n this._map.mapEntries(function (ref) {\n var v = ref[1];\n\n var mapped = mapper.call(context, v, v, this$1$1);\n\n if (mapped !== v) {\n didChanges = true;\n }\n\n return [mapped, mapped];\n }, context)\n );\n\n return didChanges ? newMap : this;\n };\n\n Set.prototype.union = function union () {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n iters = iters.filter(function (x) { return x.size !== 0; });\n if (iters.length === 0) {\n return this;\n }\n if (this.size === 0 && !this.__ownerID && iters.length === 1) {\n return this.constructor(iters[0]);\n }\n return this.withMutations(function (set) {\n for (var ii = 0; ii < iters.length; ii++) {\n if (typeof iters[ii] === 'string') {\n set.add(iters[ii]);\n } else {\n SetCollection(iters[ii]).forEach(function (value) { return set.add(value); });\n }\n }\n });\n };\n\n Set.prototype.intersect = function intersect () {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n if (iters.length === 0) {\n return this;\n }\n iters = iters.map(function (iter) { return SetCollection(iter); });\n var toRemove = [];\n this.forEach(function (value) {\n if (!iters.every(function (iter) { return iter.includes(value); })) {\n toRemove.push(value);\n }\n });\n return this.withMutations(function (set) {\n toRemove.forEach(function (value) {\n set.remove(value);\n });\n });\n };\n\n Set.prototype.subtract = function subtract () {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n if (iters.length === 0) {\n return this;\n }\n iters = iters.map(function (iter) { return SetCollection(iter); });\n var toRemove = [];\n this.forEach(function (value) {\n if (iters.some(function (iter) { return iter.includes(value); })) {\n toRemove.push(value);\n }\n });\n return this.withMutations(function (set) {\n toRemove.forEach(function (value) {\n set.remove(value);\n });\n });\n };\n\n Set.prototype.sort = function sort (comparator) {\n // Late binding\n return OrderedSet(sortFactory(this, comparator));\n };\n\n Set.prototype.sortBy = function sortBy (mapper, comparator) {\n // Late binding\n return OrderedSet(sortFactory(this, comparator, mapper));\n };\n\n Set.prototype.wasAltered = function wasAltered () {\n return this._map.wasAltered();\n };\n\n Set.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n return this._map.__iterate(function (k) { return fn(k, k, this$1$1); }, reverse);\n };\n\n Set.prototype.__iterator = function __iterator (type, reverse) {\n return this._map.__iterator(type, reverse);\n };\n\n Set.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newMap = this._map.__ensureOwner(ownerID);\n if (!ownerID) {\n if (this.size === 0) {\n return this.__empty();\n }\n this.__ownerID = ownerID;\n this._map = newMap;\n return this;\n }\n return this.__make(newMap, ownerID);\n };\n\n return Set;\n}(SetCollection));\n\nSet.isSet = isSet;\n\nvar SetPrototype = Set.prototype;\nSetPrototype[IS_SET_SYMBOL] = true;\nSetPrototype[DELETE] = SetPrototype.remove;\nSetPrototype.merge = SetPrototype.concat = SetPrototype.union;\nSetPrototype.withMutations = withMutations;\nSetPrototype.asImmutable = asImmutable;\nSetPrototype['@@transducer/init'] = SetPrototype.asMutable = asMutable;\nSetPrototype['@@transducer/step'] = function (result, arr) {\n return result.add(arr);\n};\nSetPrototype['@@transducer/result'] = function (obj) {\n return obj.asImmutable();\n};\n\nSetPrototype.__empty = emptySet;\nSetPrototype.__make = makeSet;\n\nfunction updateSet(set, newMap) {\n if (set.__ownerID) {\n set.size = newMap.size;\n set._map = newMap;\n return set;\n }\n return newMap === set._map\n ? set\n : newMap.size === 0\n ? set.__empty()\n : set.__make(newMap);\n}\n\nfunction makeSet(map, ownerID) {\n var set = Object.create(SetPrototype);\n set.size = map ? map.size : 0;\n set._map = map;\n set.__ownerID = ownerID;\n return set;\n}\n\nvar EMPTY_SET;\nfunction emptySet() {\n return EMPTY_SET || (EMPTY_SET = makeSet(emptyMap()));\n}\n\nexport { Set };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { wrapIndex, wholeSlice, resolveBegin, resolveEnd } from './TrieUtils.js';\nimport { IndexedSeq } from './Seq.js';\nimport { Iterator, iteratorDone, iteratorValue } from './Iterator.js';\nimport invariant from './utils/invariant.js';\nimport deepEqual from './utils/deepEqual.js';\n\n/**\n * Returns a lazy seq of nums from start (inclusive) to end\n * (exclusive), by step, where start defaults to 0, step to 1, and end to\n * infinity. When start is equal to end, returns empty list.\n */\nvar Range = /*@__PURE__*/(function (IndexedSeq) {\n function Range(start, end, step) {\n if ( step === void 0 ) step = 1;\n\n if (!(this instanceof Range)) {\n return new Range(start, end, step);\n }\n invariant(step !== 0, 'Cannot step a Range by 0');\n invariant(\n start !== undefined,\n 'You must define a start value when using Range'\n );\n invariant(\n end !== undefined,\n 'You must define an end value when using Range'\n );\n\n step = Math.abs(step);\n if (end < start) {\n step = -step;\n }\n this._start = start;\n this._end = end;\n this._step = step;\n this.size = Math.max(0, Math.ceil((end - start) / step - 1) + 1);\n if (this.size === 0) {\n if (EMPTY_RANGE) {\n return EMPTY_RANGE;\n }\n EMPTY_RANGE = this;\n }\n }\n\n if ( IndexedSeq ) Range.__proto__ = IndexedSeq;\n Range.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n Range.prototype.constructor = Range;\n\n Range.prototype.toString = function toString () {\n if (this.size === 0) {\n return 'Range []';\n }\n return (\n 'Range [ ' +\n this._start +\n '...' +\n this._end +\n (this._step !== 1 ? ' by ' + this._step : '') +\n ' ]'\n );\n };\n\n Range.prototype.get = function get (index, notSetValue) {\n return this.has(index)\n ? this._start + wrapIndex(this, index) * this._step\n : notSetValue;\n };\n\n Range.prototype.includes = function includes (searchValue) {\n var possibleIndex = (searchValue - this._start) / this._step;\n return (\n possibleIndex >= 0 &&\n possibleIndex < this.size &&\n possibleIndex === Math.floor(possibleIndex)\n );\n };\n\n Range.prototype.slice = function slice (begin, end) {\n if (wholeSlice(begin, end, this.size)) {\n return this;\n }\n begin = resolveBegin(begin, this.size);\n end = resolveEnd(end, this.size);\n if (end <= begin) {\n return new Range(0, 0);\n }\n return new Range(\n this.get(begin, this._end),\n this.get(end, this._end),\n this._step\n );\n };\n\n Range.prototype.indexOf = function indexOf (searchValue) {\n var offsetValue = searchValue - this._start;\n if (offsetValue % this._step === 0) {\n var index = offsetValue / this._step;\n if (index >= 0 && index < this.size) {\n return index;\n }\n }\n return -1;\n };\n\n Range.prototype.lastIndexOf = function lastIndexOf (searchValue) {\n return this.indexOf(searchValue);\n };\n\n Range.prototype.__iterate = function __iterate (fn, reverse) {\n var size = this.size;\n var step = this._step;\n var value = reverse ? this._start + (size - 1) * step : this._start;\n var i = 0;\n while (i !== size) {\n if (fn(value, reverse ? size - ++i : i++, this) === false) {\n break;\n }\n value += reverse ? -step : step;\n }\n return i;\n };\n\n Range.prototype.__iterator = function __iterator (type, reverse) {\n var size = this.size;\n var step = this._step;\n var value = reverse ? this._start + (size - 1) * step : this._start;\n var i = 0;\n return new Iterator(function () {\n if (i === size) {\n return iteratorDone();\n }\n var v = value;\n value += reverse ? -step : step;\n return iteratorValue(type, reverse ? size - ++i : i++, v);\n });\n };\n\n Range.prototype.equals = function equals (other) {\n return other instanceof Range\n ? this._start === other._start &&\n this._end === other._end &&\n this._step === other._step\n : deepEqual(this, other);\n };\n\n return Range;\n}(IndexedSeq));\n\nvar EMPTY_RANGE;\n\nexport { Range };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport coerceKeyPath from '../utils/coerceKeyPath.js';\nimport { NOT_SET } from '../TrieUtils.js';\nimport { get } from './get.js';\n\nfunction getIn(collection, searchKeyPath, notSetValue) {\n var keyPath = coerceKeyPath(searchKeyPath);\n var i = 0;\n while (i !== keyPath.length) {\n collection = get(collection, keyPath[i++], NOT_SET);\n if (collection === NOT_SET) {\n return notSetValue;\n }\n }\n return collection;\n}\n\nexport { getIn };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { getIn as getIn$1 } from '../functional/getIn.js';\n\nfunction getIn(searchKeyPath, notSetValue) {\n return getIn$1(this, searchKeyPath, notSetValue);\n}\n\nexport { getIn };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport assertNotInfinite from '../utils/assertNotInfinite.js';\n\nfunction toObject() {\n assertNotInfinite(this.size);\n var object = {};\n this.__iterate(function (v, k) {\n object[k] = v;\n });\n return object;\n}\n\nexport { toObject };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { Collection, KeyedCollection, IndexedCollection, SetCollection } from './Collection.js';\nimport { IS_COLLECTION_SYMBOL, isCollection } from './predicates/isCollection.js';\nimport { isAssociative } from './predicates/isAssociative.js';\nimport { isKeyed, IS_KEYED_SYMBOL } from './predicates/isKeyed.js';\nimport { isIndexed, IS_INDEXED_SYMBOL } from './predicates/isIndexed.js';\nimport { IS_ORDERED_SYMBOL, isOrdered } from './predicates/isOrdered.js';\nimport { is } from './is.js';\nimport { ensureSize, returnTrue, NOT_SET, resolveBegin, wrapIndex } from './TrieUtils.js';\nimport { hash } from './Hash.js';\nimport { imul, smi } from './Math.js';\nimport { ITERATE_ENTRIES, ITERATE_KEYS, ITERATE_VALUES, ITERATOR_SYMBOL, Iterator } from './Iterator.js';\nimport arrCopy from './utils/arrCopy.js';\nimport assertNotInfinite from './utils/assertNotInfinite.js';\nimport deepEqual from './utils/deepEqual.js';\nimport mixin from './utils/mixin.js';\nimport quoteString from './utils/quoteString.js';\nimport { toJS } from './toJS.js';\nimport { Map } from './Map.js';\nimport { OrderedMap } from './OrderedMap.js';\nimport { List } from './List.js';\nimport { Set } from './Set.js';\nimport { OrderedSet } from './OrderedSet.js';\nimport { Stack } from './Stack.js';\nimport { Range } from './Range.js';\nimport { ArraySeq, IndexedSeq, KeyedSeq, SetSeq } from './Seq.js';\nimport { ToIndexedSequence, ToKeyedSequence, ToSetSequence, reify, concatFactory, filterFactory, partitionFactory, mapFactory, reverseFactory, sliceFactory, sortFactory, countByFactory, flatMapFactory, flattenFactory, FromEntriesSequence, groupByFactory, maxFactory, skipWhileFactory, takeWhileFactory, flipFactory, interposeFactory, zipWithFactory } from './Operations.js';\nimport { getIn } from './methods/getIn.js';\nimport { hasIn } from './methods/hasIn.js';\nimport { toObject } from './methods/toObject.js';\n\n// Note: all of these methods are deprecated.\nCollection.isIterable = isCollection;\nCollection.isKeyed = isKeyed;\nCollection.isIndexed = isIndexed;\nCollection.isAssociative = isAssociative;\nCollection.isOrdered = isOrdered;\n\nCollection.Iterator = Iterator;\n\nmixin(Collection, {\n // ### Conversion to other types\n\n toArray: function toArray() {\n assertNotInfinite(this.size);\n var array = new Array(this.size || 0);\n var useTuples = isKeyed(this);\n var i = 0;\n this.__iterate(function (v, k) {\n // Keyed collections produce an array of tuples.\n array[i++] = useTuples ? [k, v] : v;\n });\n return array;\n },\n\n toIndexedSeq: function toIndexedSeq() {\n return new ToIndexedSequence(this);\n },\n\n toJS: function toJS$1() {\n return toJS(this);\n },\n\n toKeyedSeq: function toKeyedSeq() {\n return new ToKeyedSequence(this, true);\n },\n\n toMap: function toMap() {\n // Use Late Binding here to solve the circular dependency.\n return Map(this.toKeyedSeq());\n },\n\n toObject: toObject,\n\n toOrderedMap: function toOrderedMap() {\n // Use Late Binding here to solve the circular dependency.\n return OrderedMap(this.toKeyedSeq());\n },\n\n toOrderedSet: function toOrderedSet() {\n // Use Late Binding here to solve the circular dependency.\n return OrderedSet(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toSet: function toSet() {\n // Use Late Binding here to solve the circular dependency.\n return Set(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toSetSeq: function toSetSeq() {\n return new ToSetSequence(this);\n },\n\n toSeq: function toSeq() {\n return isIndexed(this)\n ? this.toIndexedSeq()\n : isKeyed(this)\n ? this.toKeyedSeq()\n : this.toSetSeq();\n },\n\n toStack: function toStack() {\n // Use Late Binding here to solve the circular dependency.\n return Stack(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toList: function toList() {\n // Use Late Binding here to solve the circular dependency.\n return List(isKeyed(this) ? this.valueSeq() : this);\n },\n\n // ### Common JavaScript methods and properties\n\n toString: function toString() {\n return '[Collection]';\n },\n\n __toString: function __toString(head, tail) {\n if (this.size === 0) {\n return head + tail;\n }\n return (\n head +\n ' ' +\n this.toSeq().map(this.__toStringMapper).join(', ') +\n ' ' +\n tail\n );\n },\n\n // ### ES6 Collection methods (ES6 Array and Map)\n\n concat: function concat() {\n var values = [], len = arguments.length;\n while ( len-- ) values[ len ] = arguments[ len ];\n\n return reify(this, concatFactory(this, values));\n },\n\n includes: function includes(searchValue) {\n return this.some(function (value) { return is(value, searchValue); });\n },\n\n entries: function entries() {\n return this.__iterator(ITERATE_ENTRIES);\n },\n\n every: function every(predicate, context) {\n assertNotInfinite(this.size);\n var returnValue = true;\n this.__iterate(function (v, k, c) {\n if (!predicate.call(context, v, k, c)) {\n returnValue = false;\n return false;\n }\n });\n return returnValue;\n },\n\n filter: function filter(predicate, context) {\n return reify(this, filterFactory(this, predicate, context, true));\n },\n\n partition: function partition(predicate, context) {\n return partitionFactory(this, predicate, context);\n },\n\n find: function find(predicate, context, notSetValue) {\n var entry = this.findEntry(predicate, context);\n return entry ? entry[1] : notSetValue;\n },\n\n forEach: function forEach(sideEffect, context) {\n assertNotInfinite(this.size);\n return this.__iterate(context ? sideEffect.bind(context) : sideEffect);\n },\n\n join: function join(separator) {\n assertNotInfinite(this.size);\n separator = separator !== undefined ? '' + separator : ',';\n var joined = '';\n var isFirst = true;\n this.__iterate(function (v) {\n isFirst ? (isFirst = false) : (joined += separator);\n joined += v !== null && v !== undefined ? v.toString() : '';\n });\n return joined;\n },\n\n keys: function keys() {\n return this.__iterator(ITERATE_KEYS);\n },\n\n map: function map(mapper, context) {\n return reify(this, mapFactory(this, mapper, context));\n },\n\n reduce: function reduce$1(reducer, initialReduction, context) {\n return reduce(\n this,\n reducer,\n initialReduction,\n context,\n arguments.length < 2,\n false\n );\n },\n\n reduceRight: function reduceRight(reducer, initialReduction, context) {\n return reduce(\n this,\n reducer,\n initialReduction,\n context,\n arguments.length < 2,\n true\n );\n },\n\n reverse: function reverse() {\n return reify(this, reverseFactory(this, true));\n },\n\n slice: function slice(begin, end) {\n return reify(this, sliceFactory(this, begin, end, true));\n },\n\n some: function some(predicate, context) {\n assertNotInfinite(this.size);\n var returnValue = false;\n this.__iterate(function (v, k, c) {\n if (predicate.call(context, v, k, c)) {\n returnValue = true;\n return false;\n }\n });\n return returnValue;\n },\n\n sort: function sort(comparator) {\n return reify(this, sortFactory(this, comparator));\n },\n\n values: function values() {\n return this.__iterator(ITERATE_VALUES);\n },\n\n // ### More sequential methods\n\n butLast: function butLast() {\n return this.slice(0, -1);\n },\n\n isEmpty: function isEmpty() {\n return this.size !== undefined ? this.size === 0 : !this.some(function () { return true; });\n },\n\n count: function count(predicate, context) {\n return ensureSize(\n predicate ? this.toSeq().filter(predicate, context) : this\n );\n },\n\n countBy: function countBy(grouper, context) {\n return countByFactory(this, grouper, context);\n },\n\n equals: function equals(other) {\n return deepEqual(this, other);\n },\n\n entrySeq: function entrySeq() {\n var collection = this;\n if (collection._cache) {\n // We cache as an entries array, so we can just return the cache!\n return new ArraySeq(collection._cache);\n }\n var entriesSequence = collection.toSeq().map(entryMapper).toIndexedSeq();\n entriesSequence.fromEntrySeq = function () { return collection.toSeq(); };\n return entriesSequence;\n },\n\n filterNot: function filterNot(predicate, context) {\n return this.filter(not(predicate), context);\n },\n\n findEntry: function findEntry(predicate, context, notSetValue) {\n var found = notSetValue;\n this.__iterate(function (v, k, c) {\n if (predicate.call(context, v, k, c)) {\n found = [k, v];\n return false;\n }\n });\n return found;\n },\n\n findKey: function findKey(predicate, context) {\n var entry = this.findEntry(predicate, context);\n return entry && entry[0];\n },\n\n findLast: function findLast(predicate, context, notSetValue) {\n return this.toKeyedSeq().reverse().find(predicate, context, notSetValue);\n },\n\n findLastEntry: function findLastEntry(predicate, context, notSetValue) {\n return this.toKeyedSeq()\n .reverse()\n .findEntry(predicate, context, notSetValue);\n },\n\n findLastKey: function findLastKey(predicate, context) {\n return this.toKeyedSeq().reverse().findKey(predicate, context);\n },\n\n first: function first(notSetValue) {\n return this.find(returnTrue, null, notSetValue);\n },\n\n flatMap: function flatMap(mapper, context) {\n return reify(this, flatMapFactory(this, mapper, context));\n },\n\n flatten: function flatten(depth) {\n return reify(this, flattenFactory(this, depth, true));\n },\n\n fromEntrySeq: function fromEntrySeq() {\n return new FromEntriesSequence(this);\n },\n\n get: function get(searchKey, notSetValue) {\n return this.find(function (_, key) { return is(key, searchKey); }, undefined, notSetValue);\n },\n\n getIn: getIn,\n\n groupBy: function groupBy(grouper, context) {\n return groupByFactory(this, grouper, context);\n },\n\n has: function has(searchKey) {\n return this.get(searchKey, NOT_SET) !== NOT_SET;\n },\n\n hasIn: hasIn,\n\n isSubset: function isSubset(iter) {\n iter = typeof iter.includes === 'function' ? iter : Collection(iter);\n return this.every(function (value) { return iter.includes(value); });\n },\n\n isSuperset: function isSuperset(iter) {\n iter = typeof iter.isSubset === 'function' ? iter : Collection(iter);\n return iter.isSubset(this);\n },\n\n keyOf: function keyOf(searchValue) {\n return this.findKey(function (value) { return is(value, searchValue); });\n },\n\n keySeq: function keySeq() {\n return this.toSeq().map(keyMapper).toIndexedSeq();\n },\n\n last: function last(notSetValue) {\n return this.toSeq().reverse().first(notSetValue);\n },\n\n lastKeyOf: function lastKeyOf(searchValue) {\n return this.toKeyedSeq().reverse().keyOf(searchValue);\n },\n\n max: function max(comparator) {\n return maxFactory(this, comparator);\n },\n\n maxBy: function maxBy(mapper, comparator) {\n return maxFactory(this, comparator, mapper);\n },\n\n min: function min(comparator) {\n return maxFactory(\n this,\n comparator ? neg(comparator) : defaultNegComparator\n );\n },\n\n minBy: function minBy(mapper, comparator) {\n return maxFactory(\n this,\n comparator ? neg(comparator) : defaultNegComparator,\n mapper\n );\n },\n\n rest: function rest() {\n return this.slice(1);\n },\n\n skip: function skip(amount) {\n return amount === 0 ? this : this.slice(Math.max(0, amount));\n },\n\n skipLast: function skipLast(amount) {\n return amount === 0 ? this : this.slice(0, -Math.max(0, amount));\n },\n\n skipWhile: function skipWhile(predicate, context) {\n return reify(this, skipWhileFactory(this, predicate, context, true));\n },\n\n skipUntil: function skipUntil(predicate, context) {\n return this.skipWhile(not(predicate), context);\n },\n\n sortBy: function sortBy(mapper, comparator) {\n return reify(this, sortFactory(this, comparator, mapper));\n },\n\n take: function take(amount) {\n return this.slice(0, Math.max(0, amount));\n },\n\n takeLast: function takeLast(amount) {\n return this.slice(-Math.max(0, amount));\n },\n\n takeWhile: function takeWhile(predicate, context) {\n return reify(this, takeWhileFactory(this, predicate, context));\n },\n\n takeUntil: function takeUntil(predicate, context) {\n return this.takeWhile(not(predicate), context);\n },\n\n update: function update(fn) {\n return fn(this);\n },\n\n valueSeq: function valueSeq() {\n return this.toIndexedSeq();\n },\n\n // ### Hashable Object\n\n hashCode: function hashCode() {\n return this.__hash || (this.__hash = hashCollection(this));\n },\n\n // ### Internal\n\n // abstract __iterate(fn, reverse)\n\n // abstract __iterator(type, reverse)\n});\n\nvar CollectionPrototype = Collection.prototype;\nCollectionPrototype[IS_COLLECTION_SYMBOL] = true;\nCollectionPrototype[ITERATOR_SYMBOL] = CollectionPrototype.values;\nCollectionPrototype.toJSON = CollectionPrototype.toArray;\nCollectionPrototype.__toStringMapper = quoteString;\nCollectionPrototype.inspect = CollectionPrototype.toSource = function () {\n return this.toString();\n};\nCollectionPrototype.chain = CollectionPrototype.flatMap;\nCollectionPrototype.contains = CollectionPrototype.includes;\n\nmixin(KeyedCollection, {\n // ### More sequential methods\n\n flip: function flip() {\n return reify(this, flipFactory(this));\n },\n\n mapEntries: function mapEntries(mapper, context) {\n var this$1$1 = this;\n\n var iterations = 0;\n return reify(\n this,\n this.toSeq()\n .map(function (v, k) { return mapper.call(context, [k, v], iterations++, this$1$1); })\n .fromEntrySeq()\n );\n },\n\n mapKeys: function mapKeys(mapper, context) {\n var this$1$1 = this;\n\n return reify(\n this,\n this.toSeq()\n .flip()\n .map(function (k, v) { return mapper.call(context, k, v, this$1$1); })\n .flip()\n );\n },\n});\n\nvar KeyedCollectionPrototype = KeyedCollection.prototype;\nKeyedCollectionPrototype[IS_KEYED_SYMBOL] = true;\nKeyedCollectionPrototype[ITERATOR_SYMBOL] = CollectionPrototype.entries;\nKeyedCollectionPrototype.toJSON = toObject;\nKeyedCollectionPrototype.__toStringMapper = function (v, k) { return quoteString(k) + ': ' + quoteString(v); };\n\nmixin(IndexedCollection, {\n // ### Conversion to other types\n\n toKeyedSeq: function toKeyedSeq() {\n return new ToKeyedSequence(this, false);\n },\n\n // ### ES6 Collection methods (ES6 Array and Map)\n\n filter: function filter(predicate, context) {\n return reify(this, filterFactory(this, predicate, context, false));\n },\n\n findIndex: function findIndex(predicate, context) {\n var entry = this.findEntry(predicate, context);\n return entry ? entry[0] : -1;\n },\n\n indexOf: function indexOf(searchValue) {\n var key = this.keyOf(searchValue);\n return key === undefined ? -1 : key;\n },\n\n lastIndexOf: function lastIndexOf(searchValue) {\n var key = this.lastKeyOf(searchValue);\n return key === undefined ? -1 : key;\n },\n\n reverse: function reverse() {\n return reify(this, reverseFactory(this, false));\n },\n\n slice: function slice(begin, end) {\n return reify(this, sliceFactory(this, begin, end, false));\n },\n\n splice: function splice(index, removeNum /*, ...values*/) {\n var numArgs = arguments.length;\n removeNum = Math.max(removeNum || 0, 0);\n if (numArgs === 0 || (numArgs === 2 && !removeNum)) {\n return this;\n }\n // If index is negative, it should resolve relative to the size of the\n // collection. However size may be expensive to compute if not cached, so\n // only call count() if the number is in fact negative.\n index = resolveBegin(index, index < 0 ? this.count() : this.size);\n var spliced = this.slice(0, index);\n return reify(\n this,\n numArgs === 1\n ? spliced\n : spliced.concat(arrCopy(arguments, 2), this.slice(index + removeNum))\n );\n },\n\n // ### More collection methods\n\n findLastIndex: function findLastIndex(predicate, context) {\n var entry = this.findLastEntry(predicate, context);\n return entry ? entry[0] : -1;\n },\n\n first: function first(notSetValue) {\n return this.get(0, notSetValue);\n },\n\n flatten: function flatten(depth) {\n return reify(this, flattenFactory(this, depth, false));\n },\n\n get: function get(index, notSetValue) {\n index = wrapIndex(this, index);\n return index < 0 ||\n this.size === Infinity ||\n (this.size !== undefined && index > this.size)\n ? notSetValue\n : this.find(function (_, key) { return key === index; }, undefined, notSetValue);\n },\n\n has: function has(index) {\n index = wrapIndex(this, index);\n return (\n index >= 0 &&\n (this.size !== undefined\n ? this.size === Infinity || index < this.size\n : this.indexOf(index) !== -1)\n );\n },\n\n interpose: function interpose(separator) {\n return reify(this, interposeFactory(this, separator));\n },\n\n interleave: function interleave(/*...collections*/) {\n var collections = [this].concat(arrCopy(arguments));\n var zipped = zipWithFactory(this.toSeq(), IndexedSeq.of, collections);\n var interleaved = zipped.flatten(true);\n if (zipped.size) {\n interleaved.size = zipped.size * collections.length;\n }\n return reify(this, interleaved);\n },\n\n keySeq: function keySeq() {\n return Range(0, this.size);\n },\n\n last: function last(notSetValue) {\n return this.get(-1, notSetValue);\n },\n\n skipWhile: function skipWhile(predicate, context) {\n return reify(this, skipWhileFactory(this, predicate, context, false));\n },\n\n zip: function zip(/*, ...collections */) {\n var collections = [this].concat(arrCopy(arguments));\n return reify(this, zipWithFactory(this, defaultZipper, collections));\n },\n\n zipAll: function zipAll(/*, ...collections */) {\n var collections = [this].concat(arrCopy(arguments));\n return reify(this, zipWithFactory(this, defaultZipper, collections, true));\n },\n\n zipWith: function zipWith(zipper /*, ...collections */) {\n var collections = arrCopy(arguments);\n collections[0] = this;\n return reify(this, zipWithFactory(this, zipper, collections));\n },\n});\n\nvar IndexedCollectionPrototype = IndexedCollection.prototype;\nIndexedCollectionPrototype[IS_INDEXED_SYMBOL] = true;\nIndexedCollectionPrototype[IS_ORDERED_SYMBOL] = true;\n\nmixin(SetCollection, {\n // ### ES6 Collection methods (ES6 Array and Map)\n\n get: function get(value, notSetValue) {\n return this.has(value) ? value : notSetValue;\n },\n\n includes: function includes(value) {\n return this.has(value);\n },\n\n // ### More sequential methods\n\n keySeq: function keySeq() {\n return this.valueSeq();\n },\n});\n\nvar SetCollectionPrototype = SetCollection.prototype;\nSetCollectionPrototype.has = CollectionPrototype.includes;\nSetCollectionPrototype.contains = SetCollectionPrototype.includes;\nSetCollectionPrototype.keys = SetCollectionPrototype.values;\n\n// Mixin subclasses\n\nmixin(KeyedSeq, KeyedCollectionPrototype);\nmixin(IndexedSeq, IndexedCollectionPrototype);\nmixin(SetSeq, SetCollectionPrototype);\n\n// #pragma Helper functions\n\nfunction reduce(collection, reducer, reduction, context, useFirst, reverse) {\n assertNotInfinite(collection.size);\n collection.__iterate(function (v, k, c) {\n if (useFirst) {\n useFirst = false;\n reduction = v;\n } else {\n reduction = reducer.call(context, reduction, v, k, c);\n }\n }, reverse);\n return reduction;\n}\n\nfunction keyMapper(v, k) {\n return k;\n}\n\nfunction entryMapper(v, k) {\n return [k, v];\n}\n\nfunction not(predicate) {\n return function () {\n return !predicate.apply(this, arguments);\n };\n}\n\nfunction neg(predicate) {\n return function () {\n return -predicate.apply(this, arguments);\n };\n}\n\nfunction defaultZipper() {\n return arrCopy(arguments);\n}\n\nfunction defaultNegComparator(a, b) {\n return a < b ? 1 : a > b ? -1 : 0;\n}\n\nfunction hashCollection(collection) {\n if (collection.size === Infinity) {\n return 0;\n }\n var ordered = isOrdered(collection);\n var keyed = isKeyed(collection);\n var h = ordered ? 1 : 0;\n var size = collection.__iterate(\n keyed\n ? ordered\n ? function (v, k) {\n h = (31 * h + hashMerge(hash(v), hash(k))) | 0;\n }\n : function (v, k) {\n h = (h + hashMerge(hash(v), hash(k))) | 0;\n }\n : ordered\n ? function (v) {\n h = (31 * h + hash(v)) | 0;\n }\n : function (v) {\n h = (h + hash(v)) | 0;\n }\n );\n return murmurHashOfSize(size, h);\n}\n\nfunction murmurHashOfSize(size, h) {\n h = imul(h, 0xcc9e2d51);\n h = imul((h << 15) | (h >>> -15), 0x1b873593);\n h = imul((h << 13) | (h >>> -13), 5);\n h = ((h + 0xe6546b64) | 0) ^ size;\n h = imul(h ^ (h >>> 16), 0x85ebca6b);\n h = imul(h ^ (h >>> 13), 0xc2b2ae35);\n h = smi(h ^ (h >>> 16));\n return h;\n}\n\nfunction hashMerge(a, b) {\n return (a ^ (b + 0x9e3779b9 + (a << 6) + (a >> 2))) | 0; // int\n}\n\nexport { Collection, CollectionPrototype, IndexedCollectionPrototype };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { hasIn as hasIn$1 } from '../functional/hasIn.js';\n\nfunction hasIn(searchKeyPath) {\n return hasIn$1(this, searchKeyPath);\n}\n\nexport { hasIn };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { getIn } from './getIn.js';\nimport { NOT_SET } from '../TrieUtils.js';\n\nfunction hasIn(collection, keyPath) {\n return getIn(collection, keyPath, NOT_SET) !== NOT_SET;\n}\n\nexport { hasIn };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { KeyedCollection, SetCollection } from './Collection.js';\nimport { IS_ORDERED_SYMBOL } from './predicates/isOrdered.js';\nimport { isOrderedSet } from './predicates/isOrderedSet.js';\nimport { IndexedCollectionPrototype } from './CollectionImpl.js';\nimport { Set } from './Set.js';\nimport { emptyOrderedMap } from './OrderedMap.js';\nimport assertNotInfinite from './utils/assertNotInfinite.js';\n\nvar OrderedSet = /*@__PURE__*/(function (Set) {\n function OrderedSet(value) {\n return value === undefined || value === null\n ? emptyOrderedSet()\n : isOrderedSet(value)\n ? value\n : emptyOrderedSet().withMutations(function (set) {\n var iter = SetCollection(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v) { return set.add(v); });\n });\n }\n\n if ( Set ) OrderedSet.__proto__ = Set;\n OrderedSet.prototype = Object.create( Set && Set.prototype );\n OrderedSet.prototype.constructor = OrderedSet;\n\n OrderedSet.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n OrderedSet.fromKeys = function fromKeys (value) {\n return this(KeyedCollection(value).keySeq());\n };\n\n OrderedSet.prototype.toString = function toString () {\n return this.__toString('OrderedSet {', '}');\n };\n\n return OrderedSet;\n}(Set));\n\nOrderedSet.isOrderedSet = isOrderedSet;\n\nvar OrderedSetPrototype = OrderedSet.prototype;\nOrderedSetPrototype[IS_ORDERED_SYMBOL] = true;\nOrderedSetPrototype.zip = IndexedCollectionPrototype.zip;\nOrderedSetPrototype.zipWith = IndexedCollectionPrototype.zipWith;\nOrderedSetPrototype.zipAll = IndexedCollectionPrototype.zipAll;\n\nOrderedSetPrototype.__empty = emptyOrderedSet;\nOrderedSetPrototype.__make = makeOrderedSet;\n\nfunction makeOrderedSet(map, ownerID) {\n var set = Object.create(OrderedSetPrototype);\n set.size = map ? map.size : 0;\n set._map = map;\n set.__ownerID = ownerID;\n return set;\n}\n\nvar EMPTY_ORDERED_SET;\nfunction emptyOrderedSet() {\n return (\n EMPTY_ORDERED_SET || (EMPTY_ORDERED_SET = makeOrderedSet(emptyOrderedMap()))\n );\n}\n\nexport { OrderedSet };\n","/**\n * @license\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { toJS } from './toJS.js';\nimport { KeyedCollection } from './Collection.js';\nimport { keyedSeqFromValue } from './Seq.js';\nimport { List } from './List.js';\nimport { ITERATOR_SYMBOL, ITERATE_ENTRIES } from './Iterator.js';\nimport { isRecord, IS_RECORD_SYMBOL } from './predicates/isRecord.js';\nimport { CollectionPrototype } from './CollectionImpl.js';\nimport { DELETE } from './TrieUtils.js';\nimport { getIn } from './methods/getIn.js';\nimport { setIn } from './methods/setIn.js';\nimport { deleteIn } from './methods/deleteIn.js';\nimport { update } from './methods/update.js';\nimport { updateIn } from './methods/updateIn.js';\nimport { merge, mergeWith } from './methods/merge.js';\nimport { mergeDeep, mergeDeepWith } from './methods/mergeDeep.js';\nimport { mergeIn } from './methods/mergeIn.js';\nimport { mergeDeepIn } from './methods/mergeDeepIn.js';\nimport { withMutations } from './methods/withMutations.js';\nimport { asMutable } from './methods/asMutable.js';\nimport { asImmutable } from './methods/asImmutable.js';\nimport invariant from './utils/invariant.js';\nimport quoteString from './utils/quoteString.js';\nimport { isImmutable } from './predicates/isImmutable.js';\n\nfunction throwOnInvalidDefaultValues(defaultValues) {\n if (isRecord(defaultValues)) {\n throw new Error(\n 'Can not call `Record` with an immutable Record as default values. Use a plain javascript object instead.'\n );\n }\n\n if (isImmutable(defaultValues)) {\n throw new Error(\n 'Can not call `Record` with an immutable Collection as default values. Use a plain javascript object instead.'\n );\n }\n\n if (defaultValues === null || typeof defaultValues !== 'object') {\n throw new Error(\n 'Can not call `Record` with a non-object as default values. Use a plain javascript object instead.'\n );\n }\n}\n\nvar Record = function Record(defaultValues, name) {\n var hasInitialized;\n\n throwOnInvalidDefaultValues(defaultValues);\n\n var RecordType = function Record(values) {\n var this$1$1 = this;\n\n if (values instanceof RecordType) {\n return values;\n }\n if (!(this instanceof RecordType)) {\n return new RecordType(values);\n }\n if (!hasInitialized) {\n hasInitialized = true;\n var keys = Object.keys(defaultValues);\n var indices = (RecordTypePrototype._indices = {});\n // Deprecated: left to attempt not to break any external code which\n // relies on a ._name property existing on record instances.\n // Use Record.getDescriptiveName() instead\n RecordTypePrototype._name = name;\n RecordTypePrototype._keys = keys;\n RecordTypePrototype._defaultValues = defaultValues;\n for (var i = 0; i < keys.length; i++) {\n var propName = keys[i];\n indices[propName] = i;\n if (RecordTypePrototype[propName]) {\n /* eslint-disable no-console */\n typeof console === 'object' &&\n console.warn &&\n console.warn(\n 'Cannot define ' +\n recordName(this) +\n ' with property \"' +\n propName +\n '\" since that property name is part of the Record API.'\n );\n /* eslint-enable no-console */\n } else {\n setProp(RecordTypePrototype, propName);\n }\n }\n }\n this.__ownerID = undefined;\n this._values = List().withMutations(function (l) {\n l.setSize(this$1$1._keys.length);\n KeyedCollection(values).forEach(function (v, k) {\n l.set(this$1$1._indices[k], v === this$1$1._defaultValues[k] ? undefined : v);\n });\n });\n return this;\n };\n\n var RecordTypePrototype = (RecordType.prototype =\n Object.create(RecordPrototype));\n RecordTypePrototype.constructor = RecordType;\n\n if (name) {\n RecordType.displayName = name;\n }\n\n return RecordType;\n};\n\nRecord.prototype.toString = function toString () {\n var str = recordName(this) + ' { ';\n var keys = this._keys;\n var k;\n for (var i = 0, l = keys.length; i !== l; i++) {\n k = keys[i];\n str += (i ? ', ' : '') + k + ': ' + quoteString(this.get(k));\n }\n return str + ' }';\n};\n\nRecord.prototype.equals = function equals (other) {\n return (\n this === other ||\n (isRecord(other) && recordSeq(this).equals(recordSeq(other)))\n );\n};\n\nRecord.prototype.hashCode = function hashCode () {\n return recordSeq(this).hashCode();\n};\n\n// @pragma Access\n\nRecord.prototype.has = function has (k) {\n return this._indices.hasOwnProperty(k);\n};\n\nRecord.prototype.get = function get (k, notSetValue) {\n if (!this.has(k)) {\n return notSetValue;\n }\n var index = this._indices[k];\n var value = this._values.get(index);\n return value === undefined ? this._defaultValues[k] : value;\n};\n\n// @pragma Modification\n\nRecord.prototype.set = function set (k, v) {\n if (this.has(k)) {\n var newValues = this._values.set(\n this._indices[k],\n v === this._defaultValues[k] ? undefined : v\n );\n if (newValues !== this._values && !this.__ownerID) {\n return makeRecord(this, newValues);\n }\n }\n return this;\n};\n\nRecord.prototype.remove = function remove (k) {\n return this.set(k);\n};\n\nRecord.prototype.clear = function clear () {\n var newValues = this._values.clear().setSize(this._keys.length);\n\n return this.__ownerID ? this : makeRecord(this, newValues);\n};\n\nRecord.prototype.wasAltered = function wasAltered () {\n return this._values.wasAltered();\n};\n\nRecord.prototype.toSeq = function toSeq () {\n return recordSeq(this);\n};\n\nRecord.prototype.toJS = function toJS$1 () {\n return toJS(this);\n};\n\nRecord.prototype.entries = function entries () {\n return this.__iterator(ITERATE_ENTRIES);\n};\n\nRecord.prototype.__iterator = function __iterator (type, reverse) {\n return recordSeq(this).__iterator(type, reverse);\n};\n\nRecord.prototype.__iterate = function __iterate (fn, reverse) {\n return recordSeq(this).__iterate(fn, reverse);\n};\n\nRecord.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newValues = this._values.__ensureOwner(ownerID);\n if (!ownerID) {\n this.__ownerID = ownerID;\n this._values = newValues;\n return this;\n }\n return makeRecord(this, newValues, ownerID);\n};\n\nRecord.isRecord = isRecord;\nRecord.getDescriptiveName = recordName;\nvar RecordPrototype = Record.prototype;\nRecordPrototype[IS_RECORD_SYMBOL] = true;\nRecordPrototype[DELETE] = RecordPrototype.remove;\nRecordPrototype.deleteIn = RecordPrototype.removeIn = deleteIn;\nRecordPrototype.getIn = getIn;\nRecordPrototype.hasIn = CollectionPrototype.hasIn;\nRecordPrototype.merge = merge;\nRecordPrototype.mergeWith = mergeWith;\nRecordPrototype.mergeIn = mergeIn;\nRecordPrototype.mergeDeep = mergeDeep;\nRecordPrototype.mergeDeepWith = mergeDeepWith;\nRecordPrototype.mergeDeepIn = mergeDeepIn;\nRecordPrototype.setIn = setIn;\nRecordPrototype.update = update;\nRecordPrototype.updateIn = updateIn;\nRecordPrototype.withMutations = withMutations;\nRecordPrototype.asMutable = asMutable;\nRecordPrototype.asImmutable = asImmutable;\nRecordPrototype[ITERATOR_SYMBOL] = RecordPrototype.entries;\nRecordPrototype.toJSON = RecordPrototype.toObject =\n CollectionPrototype.toObject;\nRecordPrototype.inspect = RecordPrototype.toSource = function () {\n return this.toString();\n};\n\nfunction makeRecord(likeRecord, values, ownerID) {\n var record = Object.create(Object.getPrototypeOf(likeRecord));\n record._values = values;\n record.__ownerID = ownerID;\n return record;\n}\n\nfunction recordName(record) {\n return record.constructor.displayName || record.constructor.name || 'Record';\n}\n\nfunction recordSeq(record) {\n return keyedSeqFromValue(record._keys.map(function (k) { return [k, record.get(k)]; }));\n}\n\nfunction setProp(prototype, name) {\n try {\n Object.defineProperty(prototype, name, {\n get: function () {\n return this.get(name);\n },\n set: function (value) {\n invariant(this.__ownerID, 'Cannot set on an immutable record.');\n this.set(name, value);\n },\n });\n } catch (error) {\n // Object.defineProperty failed. Probably IE8.\n }\n}\n\nexport { Record };\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\n\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\n\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\n\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\n\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\n\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\n\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\n\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\n\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n\n var addedTags = {};\n var removedTags = {};\n\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n cb && cb();\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n\n\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\n\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\n\nexport default HelmetExport;\nexport { HelmetExport as Helmet };\n","/**\n * @license React\n * react-server-dom-webpack.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var k=require(\"react\"),l={stream:!0},n=new Map,p=Symbol.for(\"react.element\"),q=Symbol.for(\"react.lazy\"),r=Symbol.for(\"react.default_value\"),t=k.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ContextRegistry;function u(a){t[a]||(t[a]=k.createServerContext(a,r));return t[a]}function v(a,b,c){this._status=a;this._value=b;this._response=c}v.prototype.then=function(a){0===this._status?(null===this._value&&(this._value=[]),this._value.push(a)):a()};\nfunction w(a){switch(a._status){case 3:return a._value;case 1:var b=JSON.parse(a._value,a._response._fromJSON);a._status=3;return a._value=b;case 2:b=a._value;for(var c=b.chunks,d=0;d {\r\n duration = (animation === null || animation === void 0 ? void 0 : animation.type) && !duration ? 150 : duration;\r\n if (draggable && animation.type.match(/top|bottom|left|right/))\r\n animation = modalAnimation_1.modalAnimation.scaleUp;\r\n (0, react_1.useEffect)(() => {\r\n (0, utils_1.checkRequiredProps)({ id, consumer, isOpen, setOpen });\r\n (0, utils_1.checkCustomStyle)({ id, width, height, backgroundColor });\r\n }, []);\r\n const hashId = (0, utils_1.hash)(id);\r\n const Context = (0, react_1.useMemo)(() => (0, modalContext_1.createModalContext)(id), []);\r\n const ContextProps = (0, react_1.useMemo)(() => (0, modalContext_1.createModalContextProps)(id), []);\r\n const [initialization, setInitialization] = (0, react_1.useState)(false);\r\n const [pending, setPending] = (0, react_1.useState)(false);\r\n const [customProps, setCustomProps] = (0, react_1.useState)({});\r\n const setCustomPropsWithCheckPropsCondition = (0, react_1.useCallback)((props) => {\r\n if ((0, utils_1.checkPropsCondition)(props))\r\n return setCustomProps(props);\r\n setCustomProps({});\r\n }, [customProps]);\r\n const open = (0, react_1.useCallback)((props) => __awaiter(void 0, void 0, void 0, function* () {\r\n setOpen(true);\r\n setCustomPropsWithCheckPropsCondition(props);\r\n if (!initialization)\r\n setInitialization(true);\r\n if (!asyncOpen)\r\n return;\r\n setPending(true);\r\n yield asyncOpen();\r\n setPending(false);\r\n }), [customProps]);\r\n const close = (0, react_1.useCallback)(() => setOpen(false), []);\r\n const keyUpHandler = (0, react_1.useCallback)(({ key }) => {\r\n if (key !== 'Escape')\r\n return;\r\n if ([...modalSet][modalSet.size - 1] !== id)\r\n return;\r\n close();\r\n }, []);\r\n (0, react_1.useEffect)(() => {\r\n if (!isOpen)\r\n return window.removeEventListener('keyup', keyUpHandler);\r\n window.addEventListener('keyup', keyUpHandler);\r\n modalSet.add(id);\r\n }, [isOpen]);\r\n const providerValues = (0, react_1.useMemo)(() => ({\r\n open,\r\n close,\r\n }), []);\r\n const propsProviderValues = (0, react_1.useMemo)(() => (Object.assign({}, customProps)), [customProps]);\r\n return ((0, jsx_runtime_1.jsx)(ContextProps.Provider, Object.assign({ value: propsProviderValues }, { children: (0, jsx_runtime_1.jsxs)(Context.Provider, Object.assign({ value: providerValues }, { children: [consumer, (0, jsx_runtime_1.jsx)(Portal_1.default, Object.assign({ id: id, hashId: hashId, modalSet: modalSet, initialization: initialization, pending: pending, isOpen: isOpen, close: close, allowClickOutside: allowClickOutside, spinner: spinner, spinnerColor: spinnerColor, duration: duration, modalStyle: (0, utils_1.getModalStyle)({\r\n hashId,\r\n duration,\r\n overlayColor,\r\n vertical,\r\n horizontal,\r\n animation,\r\n width,\r\n height,\r\n radius,\r\n backgroundColor,\r\n }), draggable: draggable }, { children: children }))] })) })));\r\n};\r\nconst modalSet = new Set();\r\nexports.default = Modal;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst react_1 = require(\"react\");\r\nconst constants_1 = require(\"./constants\");\r\nconst ModalProvider = ({ children, value = [] }) => {\r\n if (!value.length)\r\n console.error(constants_1.ERROR_MESSAGES.MODAL_PROVIDER_EMPTY_VALUE);\r\n return value.reduce((acc, curr) => (0, react_1.createElement)(curr, null, acc), children);\r\n};\r\nexports.default = ModalProvider;\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst jsx_runtime_1 = require(\"react/jsx-runtime\");\r\nconst ReactDOM = require(\"react-dom\");\r\nconst react_1 = require(\"react\");\r\nconst PortalBody_1 = require(\"./PortalBody\");\r\nconst Spinner_1 = require(\"./Spinner\");\r\nconst constants_1 = require(\"./constants\");\r\nconst utils_1 = require(\"./utils\");\r\nconst Portal = ({ children, id, hashId, modalSet, initialization, pending, isOpen, close, allowClickOutside, duration, modalStyle, spinner, spinnerColor, draggable, }) => {\r\n const [isCreatedPortal, setCreatedPortal] = (0, react_1.useState)(false);\r\n (0, react_1.useEffect)(() => {\r\n (() => __awaiter(void 0, void 0, void 0, function* () {\r\n if (!isOpen) {\r\n yield (0, utils_1.defer)(duration);\r\n const portal = (0, utils_1.$)(`.${constants_1.PREFIX.PORTAL}${hashId}`);\r\n const style = (0, utils_1.$)(`[data-modal-style=\"${constants_1.PREFIX.PORTAL}${hashId}`);\r\n portal && document.body.removeChild(portal);\r\n style && document.head.removeChild(style);\r\n return setCreatedPortal(false);\r\n }\r\n const portal = document.createElement('div');\r\n portal.classList.add(`${constants_1.PREFIX.PORTAL}${hashId}`);\r\n document.body.appendChild(portal);\r\n const style = document.createElement('style');\r\n style.setAttribute('data-modal-style', `${constants_1.PREFIX.PORTAL}${hashId}`);\r\n style.textContent = modalStyle;\r\n document.head.appendChild(style);\r\n setCreatedPortal(true);\r\n }))();\r\n }, [isOpen]);\r\n (0, react_1.useEffect)(() => {\r\n if (!initialization || isOpen)\r\n return;\r\n modalSet.delete(id);\r\n }, [isOpen]);\r\n if (!isCreatedPortal || !initialization)\r\n return null;\r\n if (pending)\r\n return (0, jsx_runtime_1.jsx)(Spinner_1.default, { spinner: spinner, spinnerColor: spinnerColor });\r\n return ReactDOM.createPortal((0, jsx_runtime_1.jsx)(PortalBody_1.default, Object.assign({ isOpen: isOpen, close: close, allowClickOutside: allowClickOutside, draggable: draggable }, { children: children })), (0, utils_1.$)(`.${constants_1.PREFIX.PORTAL}${hashId}`));\r\n};\r\nexports.default = Portal;\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst jsx_runtime_1 = require(\"react/jsx-runtime\");\r\nconst react_1 = require(\"react\");\r\nconst utils_1 = require(\"./utils\");\r\nconst constants_1 = require(\"./constants\");\r\nconst PortalBody = ({ children, isOpen, close, allowClickOutside, draggable }) => {\r\n const [overlayClass, setOverlayClass] = (0, react_1.useState)(constants_1.OVERLAY_CLASS_NAME.BASE);\r\n const [modalClass, setModalClass] = (0, react_1.useState)(constants_1.CLASS_NAME.BASE);\r\n const modalRef = (0, react_1.useRef)(null);\r\n const overlayClickHandler = (0, react_1.useCallback)(({ target }) => {\r\n var _a;\r\n if (((_a = modalRef.current) === null || _a === void 0 ? void 0 : _a.contains(target)) || !allowClickOutside)\r\n return;\r\n close();\r\n }, []);\r\n const modalDragHandler = (0, react_1.useCallback)((e) => {\r\n if (!draggable)\r\n return;\r\n (0, utils_1.startDragHandler)(e);\r\n }, []);\r\n (0, react_1.useEffect)(() => {\r\n (() => __awaiter(void 0, void 0, void 0, function* () {\r\n if (isOpen) {\r\n yield (0, utils_1.defer)(30);\r\n setOverlayClass((overlayClass) => `${overlayClass} ${constants_1.OVERLAY_CLASS_NAME.AFTER_OPEN}`);\r\n setModalClass((modalClass) => `${modalClass} ${constants_1.CLASS_NAME.AFTER_OPEN}`);\r\n }\r\n else {\r\n setOverlayClass((overlayClass) => `${overlayClass} ${constants_1.OVERLAY_CLASS_NAME.BEFORE_CLOSE}`);\r\n setModalClass((modalClass) => `${modalClass} ${constants_1.CLASS_NAME.BEFORE_CLOSE}`);\r\n }\r\n }))();\r\n }, [isOpen]);\r\n return ((0, jsx_runtime_1.jsx)(\"div\", Object.assign({ className: overlayClass, onClick: overlayClickHandler }, { children: (0, jsx_runtime_1.jsx)(\"div\", Object.assign({ className: modalClass, onMouseDown: modalDragHandler, ref: modalRef }, { children: (0, jsx_runtime_1.jsx)(\"div\", { children: children }) })) })));\r\n};\r\nexports.default = PortalBody;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst jsx_runtime_1 = require(\"react/jsx-runtime\");\r\nconst SpinnerSVG_1 = require(\"./assets/SpinnerSVG\");\r\nconst Spinner = ({ spinner, spinnerColor }) => {\r\n return ((0, jsx_runtime_1.jsx)(\"div\", Object.assign({ style: {\r\n position: 'fixed',\r\n top: 0,\r\n bottom: 0,\r\n right: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%',\r\n outline: '0',\r\n zIndex: 10001,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n backgroundColor: 'rgba(0, 0, 0, 0)',\r\n } }, { children: spinner ? spinner : spinner !== false && (0, jsx_runtime_1.jsx)(SpinnerSVG_1.default, { spinnerColor: spinnerColor }) })));\r\n};\r\nexports.default = Spinner;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst jsx_runtime_1 = require(\"react/jsx-runtime\");\r\nconst Spinner = ({ spinnerColor }) => {\r\n return ((0, jsx_runtime_1.jsxs)(\"svg\", Object.assign({ width: \"200px\", height: \"200px\", viewBox: \"0 0 100 100\", preserveAspectRatio: \"xMidYMid\" }, { children: [(0, jsx_runtime_1.jsx)(\"g\", Object.assign({ transform: \"rotate(0 50 50)\" }, { children: (0, jsx_runtime_1.jsx)(\"rect\", Object.assign({ x: \"49\", y: \"35.75\", rx: \"0\", ry: \"0\", width: \"1.675\", height: \"6.3\", fill: spinnerColor }, { children: (0, jsx_runtime_1.jsx)(\"animate\", { attributeName: \"opacity\", values: \"1;0\", keyTimes: \"0;1\", dur: \"1s\", begin: \"-0.9166666666666666s\", repeatCount: \"indefinite\" }) })) })), (0, jsx_runtime_1.jsx)(\"g\", Object.assign({ transform: \"rotate(30 50 50)\" }, { children: (0, jsx_runtime_1.jsx)(\"rect\", Object.assign({ x: \"49\", y: \"35.75\", rx: \"0\", ry: \"0\", width: \"1.675\", height: \"6.3\", fill: spinnerColor }, { children: (0, jsx_runtime_1.jsx)(\"animate\", { attributeName: \"opacity\", values: \"1;0\", keyTimes: \"0;1\", dur: \"1s\", begin: \"-0.8333333333333334s\", repeatCount: \"indefinite\" }) })) })), (0, jsx_runtime_1.jsx)(\"g\", Object.assign({ transform: \"rotate(60 50 50)\" }, { children: (0, jsx_runtime_1.jsx)(\"rect\", Object.assign({ x: \"49\", y: \"35.75\", rx: \"0\", ry: \"0\", width: \"1.675\", height: \"6.3\", fill: spinnerColor }, { children: (0, jsx_runtime_1.jsx)(\"animate\", { attributeName: \"opacity\", values: \"1;0\", keyTimes: \"0;1\", dur: \"1s\", begin: \"-0.75s\", repeatCount: \"indefinite\" }) })) })), (0, jsx_runtime_1.jsx)(\"g\", Object.assign({ transform: \"rotate(90 50 50)\" }, { children: (0, jsx_runtime_1.jsx)(\"rect\", Object.assign({ x: \"49\", y: \"35.75\", rx: \"0\", ry: \"0\", width: \"1.675\", height: \"6.3\", fill: spinnerColor }, { children: (0, jsx_runtime_1.jsx)(\"animate\", { attributeName: \"opacity\", values: \"1;0\", keyTimes: \"0;1\", dur: \"1s\", begin: \"-0.6666666666666666s\", repeatCount: \"indefinite\" }) })) })), (0, jsx_runtime_1.jsx)(\"g\", Object.assign({ transform: \"rotate(120 50 50)\" }, { children: (0, jsx_runtime_1.jsx)(\"rect\", Object.assign({ x: \"49\", y: \"35.75\", rx: \"0\", ry: \"0\", width: \"1.675\", height: \"6.3\", fill: spinnerColor }, { children: (0, jsx_runtime_1.jsx)(\"animate\", { attributeName: \"opacity\", values: \"1;0\", keyTimes: \"0;1\", dur: \"1s\", begin: \"-0.5833333333333334s\", repeatCount: \"indefinite\" }) })) })), (0, jsx_runtime_1.jsx)(\"g\", Object.assign({ transform: \"rotate(150 50 50)\" }, { children: (0, jsx_runtime_1.jsx)(\"rect\", Object.assign({ x: \"49\", y: \"35.75\", rx: \"0\", ry: \"0\", width: \"1.675\", height: \"6.3\", fill: spinnerColor }, { children: (0, jsx_runtime_1.jsx)(\"animate\", { attributeName: \"opacity\", values: \"1;0\", keyTimes: \"0;1\", dur: \"1s\", begin: \"-0.5s\", repeatCount: \"indefinite\" }) })) })), (0, jsx_runtime_1.jsx)(\"g\", Object.assign({ transform: \"rotate(180 50 50)\" }, { children: (0, jsx_runtime_1.jsx)(\"rect\", Object.assign({ x: \"49\", y: \"35.75\", rx: \"0\", ry: \"0\", width: \"1.675\", height: \"6.3\", fill: spinnerColor }, { children: (0, jsx_runtime_1.jsx)(\"animate\", { attributeName: \"opacity\", values: \"1;0\", keyTimes: \"0;1\", dur: \"1s\", begin: \"-0.4166666666666667s\", repeatCount: \"indefinite\" }) })) })), (0, jsx_runtime_1.jsx)(\"g\", Object.assign({ transform: \"rotate(210 50 50)\" }, { children: (0, jsx_runtime_1.jsx)(\"rect\", Object.assign({ x: \"49\", y: \"35.75\", rx: \"0\", ry: \"0\", width: \"1.675\", height: \"6.3\", fill: spinnerColor }, { children: (0, jsx_runtime_1.jsx)(\"animate\", { attributeName: \"opacity\", values: \"1;0\", keyTimes: \"0;1\", dur: \"1s\", begin: \"-0.3333333333333333s\", repeatCount: \"indefinite\" }) })) })), (0, jsx_runtime_1.jsx)(\"g\", Object.assign({ transform: \"rotate(240 50 50)\" }, { children: (0, jsx_runtime_1.jsx)(\"rect\", Object.assign({ x: \"49\", y: \"35.75\", rx: \"0\", ry: \"0\", width: \"1.675\", height: \"6.3\", fill: spinnerColor }, { children: (0, jsx_runtime_1.jsx)(\"animate\", { attributeName: \"opacity\", values: \"1;0\", keyTimes: \"0;1\", dur: \"1s\", begin: \"-0.25s\", repeatCount: \"indefinite\" }) })) })), (0, jsx_runtime_1.jsx)(\"g\", Object.assign({ transform: \"rotate(270 50 50)\" }, { children: (0, jsx_runtime_1.jsx)(\"rect\", Object.assign({ x: \"49\", y: \"35.75\", rx: \"0\", ry: \"0\", width: \"1.675\", height: \"6.3\", fill: spinnerColor }, { children: (0, jsx_runtime_1.jsx)(\"animate\", { attributeName: \"opacity\", values: \"1;0\", keyTimes: \"0;1\", dur: \"1s\", begin: \"-0.16666666666666666s\", repeatCount: \"indefinite\" }) })) })), (0, jsx_runtime_1.jsx)(\"g\", Object.assign({ transform: \"rotate(300 50 50)\" }, { children: (0, jsx_runtime_1.jsx)(\"rect\", Object.assign({ x: \"49\", y: \"35.75\", rx: \"0\", ry: \"0\", width: \"1.675\", height: \"6.3\", fill: spinnerColor }, { children: (0, jsx_runtime_1.jsx)(\"animate\", { attributeName: \"opacity\", values: \"1;0\", keyTimes: \"0;1\", dur: \"1s\", begin: \"-0.08333333333333333s\", repeatCount: \"indefinite\" }) })) })), (0, jsx_runtime_1.jsx)(\"g\", Object.assign({ transform: \"rotate(330 50 50)\" }, { children: (0, jsx_runtime_1.jsx)(\"rect\", Object.assign({ x: \"49\", y: \"35.75\", rx: \"0\", ry: \"0\", width: \"1.675\", height: \"6.3\", fill: spinnerColor }, { children: (0, jsx_runtime_1.jsx)(\"animate\", { attributeName: \"opacity\", values: \"1;0\", keyTimes: \"0;1\", dur: \"1s\", begin: \"0s\", repeatCount: \"indefinite\" }) })) }))] })));\r\n};\r\nexports.default = Spinner;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ERROR_MESSAGES = exports.PREFIX = exports.CLASS_NAME = exports.OVERLAY_CLASS_NAME = void 0;\r\nconst OVERLAY_CLASS_NAME = {\r\n BASE: 'overlay-base',\r\n AFTER_OPEN: 'overlay-after',\r\n BEFORE_CLOSE: 'overlay-before',\r\n};\r\nexports.OVERLAY_CLASS_NAME = OVERLAY_CLASS_NAME;\r\nconst CLASS_NAME = {\r\n BASE: 'content-base',\r\n AFTER_OPEN: 'content-after',\r\n BEFORE_CLOSE: 'content-before',\r\n};\r\nexports.CLASS_NAME = CLASS_NAME;\r\nconst PREFIX = {\r\n HASH: 'modal-',\r\n PORTAL: 'portal-',\r\n};\r\nexports.PREFIX = PREFIX;\r\nconst ERROR_MESSAGES = {\r\n MODAL_PROVIDER_EMPTY_VALUE: 'react-simple-modal-provider: ModalProvider Warning! Value props is empty.',\r\n MODAL_ID_TYPE_ERROR: (id) => `react-simple-modal-provider: Modal ID(${id}): Modal Error! id props must be a string type.`,\r\n MODAL_NOT_ENOUGH_PROPS: (id) => `react-simple-modal-provider: Modal ID(${id}): Modal Error! Not enough required props data. Check the Modal props. (id, consumer, isOpen, setOpen)`,\r\n MODAL_ID_INVALID_FROM_CONTEXT: (id) => `react-simple-modal-provider: context Error! ID \"${id}\" is not valid`,\r\n MODAL_ID_INVALID_FROM: (id, name) => `react-simple-modal-provider: ${name} Error! ID \"${id}\" is not valid`,\r\n MODAL_ID_NOT_EXIST: (id, name) => `react-simple-modal-provider: ${name} Error! ID \"${id}\" not exist. Check the order of value props passed to \"ModalProvider\".`,\r\n MODAL_CUSTOM_STYLE_WARN: (id) => `react-simple-modal-provider: Modal ID(${id}): The backgroundColor is transparent. Please specify the backgroundColor.`,\r\n};\r\nexports.ERROR_MESSAGES = ERROR_MESSAGES;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.modalAnimation = exports.useModalProps = exports.useModal = exports.ModalProvider = exports.useModalState = void 0;\r\nconst Modal_1 = require(\"./Modal\");\r\nvar useModalState_1 = require(\"./useModalState\");\r\nObject.defineProperty(exports, \"useModalState\", { enumerable: true, get: function () { return useModalState_1.default; } });\r\nvar ModalProvider_1 = require(\"./ModalProvider\");\r\nObject.defineProperty(exports, \"ModalProvider\", { enumerable: true, get: function () { return ModalProvider_1.default; } });\r\nvar modalContext_1 = require(\"./modalContext\");\r\nObject.defineProperty(exports, \"useModal\", { enumerable: true, get: function () { return modalContext_1.useModal; } });\r\nObject.defineProperty(exports, \"useModalProps\", { enumerable: true, get: function () { return modalContext_1.useModalProps; } });\r\nvar modalAnimation_1 = require(\"./modalAnimation\");\r\nObject.defineProperty(exports, \"modalAnimation\", { enumerable: true, get: function () { return modalAnimation_1.modalAnimation; } });\r\nexports.default = Modal_1.default;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.modalAnimation = void 0;\r\nconst scaleUp = {\r\n type: 'transform, opacity',\r\n base: 'transform: scale(0.3); opacity: 0;',\r\n before: 'transform: scale(0.3); opacity: 0;',\r\n after: 'transform: scale(1); opacity: 1;',\r\n};\r\nconst slideDown = {\r\n type: 'transform, opacity',\r\n base: 'transform: translateY(-50px); opacity: 0;',\r\n before: 'transform: translateY(50px); opacity: 0;',\r\n after: 'transform: translateY(0px); opacity: 1;',\r\n};\r\nconst slideUp = {\r\n type: 'transform, opacity',\r\n base: 'transform: translateY(50px); opacity: 0;',\r\n before: 'transform: translateY(-50px); opacity: 0;',\r\n after: 'transform: translateY(0px); opacity: 1;',\r\n};\r\nexports.modalAnimation = {\r\n scaleUp,\r\n slideDown,\r\n slideUp,\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.useModalProps = exports.useModal = exports.createModalContextProps = exports.createModalContext = void 0;\r\nconst react_1 = require(\"react\");\r\nconst constants_1 = require(\"./constants\");\r\nconst createModalContext = (id) => {\r\n if (!id)\r\n throw new Error(constants_1.ERROR_MESSAGES.MODAL_ID_INVALID_FROM_CONTEXT(id));\r\n if (contextMap.has(id))\r\n return contextMap.get(id);\r\n const context = (0, react_1.createContext)({});\r\n contextMap.set(id, context);\r\n return context;\r\n};\r\nexports.createModalContext = createModalContext;\r\nconst createModalContextProps = (id) => {\r\n if (!id)\r\n throw new Error(constants_1.ERROR_MESSAGES.MODAL_ID_INVALID_FROM_CONTEXT(id));\r\n if (contextPropsMap.has(id))\r\n return contextPropsMap.get(id);\r\n const contextProps = (0, react_1.createContext)({});\r\n contextPropsMap.set(id, contextProps);\r\n return contextProps;\r\n};\r\nexports.createModalContextProps = createModalContextProps;\r\nconst useModal = (id) => {\r\n if (!id)\r\n throw new Error(constants_1.ERROR_MESSAGES.MODAL_ID_INVALID_FROM(id, 'useModal'));\r\n if (!contextMap.has(id))\r\n throw new Error(constants_1.ERROR_MESSAGES.MODAL_ID_NOT_EXIST(id, 'useModal'));\r\n return (0, react_1.useContext)(contextMap.get(id));\r\n};\r\nexports.useModal = useModal;\r\nconst useModalProps = (id) => {\r\n if (!id)\r\n throw new Error(constants_1.ERROR_MESSAGES.MODAL_ID_INVALID_FROM(id, 'useModalProps'));\r\n if (!contextPropsMap.has(id))\r\n throw new Error(constants_1.ERROR_MESSAGES.MODAL_ID_NOT_EXIST(id, 'useModalProps'));\r\n return (0, react_1.useContext)(contextPropsMap.get(id));\r\n};\r\nexports.useModalProps = useModalProps;\r\nconst contextMap = new Map();\r\nconst contextPropsMap = new Map();\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst react_1 = require(\"react\");\r\nconst useModalState = () => {\r\n const [isOpen, setOpen] = (0, react_1.useState)(false);\r\n return [isOpen, setOpen];\r\n};\r\nexports.default = useModalState;\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.checkCustomStyle = exports.checkPropsCondition = exports.startDragHandler = exports.throttle = exports.getModalStyle = exports.checkRequiredProps = exports.defer = exports.hash = exports.stateBundler = exports.$ = void 0;\r\nconst constants_1 = require(\"./constants\");\r\nconst $ = (selector, parent = document) => parent.querySelector(selector);\r\nexports.$ = $;\r\nconst stateBundler = (setFuncArr = [], willState) => setFuncArr.forEach((set) => set(willState));\r\nexports.stateBundler = stateBundler;\r\nconst hash = (id) => {\r\n let hash = 0, i = 0, len = id.length;\r\n while (i < len) {\r\n hash = ((hash << 5) - hash + id.charCodeAt(i++)) << 0;\r\n }\r\n hash = hash + 2147483647 + 1;\r\n return `${constants_1.PREFIX.HASH}${hash}`;\r\n};\r\nexports.hash = hash;\r\nconst defer = (ms) => __awaiter(void 0, void 0, void 0, function* () { return yield new Promise((r) => setTimeout(r, ms)); });\r\nexports.defer = defer;\r\nconst checkRequiredProps = ({ id, consumer, isOpen, setOpen, }) => {\r\n if (typeof id !== 'string')\r\n throw new Error(constants_1.ERROR_MESSAGES.MODAL_ID_TYPE_ERROR(id));\r\n if (!id || !consumer || isOpen === undefined || !setOpen)\r\n throw new Error(constants_1.ERROR_MESSAGES.MODAL_NOT_ENOUGH_PROPS(id));\r\n};\r\nexports.checkRequiredProps = checkRequiredProps;\r\nconst getModalStyle = ({ hashId, duration, vertical, horizontal, width, height, radius, overlayColor, backgroundColor, animation, }) => {\r\n return `\r\n .${constants_1.PREFIX.PORTAL}${hashId} .overlay-base {\r\n position: fixed;\r\n top: 0;\r\n bottom: 0;\r\n right: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n outline: 0;\r\n z-index: 9999;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n background-color: rgba(0, 0, 0, 0);\r\n transition-property: background-color, opacity;\r\n transition-timing-function: ease-in-out;\r\n transition-duration: ${duration}ms;\r\n }\r\n\r\n .${constants_1.PREFIX.PORTAL}${hashId} .overlay-after {\r\n background-color: ${overlayColor};\r\n }\r\n\r\n .${constants_1.PREFIX.PORTAL}${hashId} .overlay-before {\r\n background-color: rgba(0, 0, 0, 0);\r\n }\r\n\r\n .${constants_1.PREFIX.PORTAL}${hashId} .content-base {\r\n position: relative;\r\n bottom: ${vertical}px;\r\n left: ${horizontal}px;\r\n outline: 0;\r\n transition-timing-function: ease-in-out;\r\n transition-property: ${animation.type};\r\n ${animation.base};\r\n transition-duration: ${duration}ms;\r\n visibility: hidden;\r\n pointer-events: none;\r\n\r\n min-width: ${width}px;\r\n min-height: ${height}px;\r\n border-radius: ${radius}px;\r\n background-color: ${backgroundColor};\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n }\r\n\r\n .${constants_1.PREFIX.PORTAL}${hashId} .content-after {\r\n visibility: visible;\r\n pointer-events: auto;\r\n ${animation.after};\r\n }\r\n\r\n .${constants_1.PREFIX.PORTAL}${hashId} .content-before {\r\n ${animation.before};\r\n }\r\n `.replace(/\\n| /g, '');\r\n};\r\nexports.getModalStyle = getModalStyle;\r\nconst throttle = (callback, waitTime) => {\r\n let timerId = null;\r\n return (e) => {\r\n if (timerId)\r\n return;\r\n timerId = setTimeout(() => {\r\n callback.call(null, e);\r\n timerId = null;\r\n }, waitTime);\r\n };\r\n};\r\nexports.throttle = throttle;\r\nconst startDragHandler = (e) => {\r\n const { currentTarget, clientX, clientY, } = e;\r\n const move = ({ clientX, clientY }) => {\r\n currentTarget.style.top = clientY - offsetY + 'px';\r\n currentTarget.style.left = clientX - offsetX + 'px';\r\n };\r\n const onMouseMoveThrottle = throttle(({ clientX, clientY }) => {\r\n if (clientX <= 0 || clientY <= 0 || clientX >= innerWidth || clientY >= innerHeight)\r\n return removeMousemoveEvent();\r\n move({ clientX, clientY });\r\n }, 10);\r\n const removeMousemoveEvent = () => {\r\n document.removeEventListener('mousemove', onMouseMoveThrottle);\r\n currentTarget.onmouseup = null;\r\n };\r\n document.addEventListener('mousemove', onMouseMoveThrottle);\r\n currentTarget.onmouseup = removeMousemoveEvent;\r\n const offsetX = clientX - currentTarget.getBoundingClientRect().left;\r\n const offsetY = clientY - currentTarget.getBoundingClientRect().top;\r\n move({ clientX, clientY });\r\n currentTarget.style.width = currentTarget.offsetWidth + 'px';\r\n currentTarget.style.height = currentTarget.offsetHeight + 'px';\r\n currentTarget.style.position = 'fixed';\r\n currentTarget.style.zIndex = '10000';\r\n};\r\nexports.startDragHandler = startDragHandler;\r\nconst checkPropsCondition = (props) => {\r\n return (props !== null &&\r\n typeof props === 'object' &&\r\n props.constructor &&\r\n props.constructor.name !== 'SyntheticBaseEvent');\r\n};\r\nexports.checkPropsCondition = checkPropsCondition;\r\nconst checkCustomStyle = ({ id, width, height, backgroundColor, }) => {\r\n if ((!!width || !!height) && backgroundColor === 'transparent')\r\n console.warn(constants_1.ERROR_MESSAGES.MODAL_CUSTOM_STYLE_WARN(id));\r\n};\r\nexports.checkCustomStyle = checkCustomStyle;\r\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],t):t(e.reduxLogger=e.reduxLogger||{})}(this,function(e){\"use strict\";function t(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}function r(e,t){Object.defineProperty(this,\"kind\",{value:e,enumerable:!0}),t&&t.length&&Object.defineProperty(this,\"path\",{value:t,enumerable:!0})}function n(e,t,r){n.super_.call(this,\"E\",e),Object.defineProperty(this,\"lhs\",{value:t,enumerable:!0}),Object.defineProperty(this,\"rhs\",{value:r,enumerable:!0})}function o(e,t){o.super_.call(this,\"N\",e),Object.defineProperty(this,\"rhs\",{value:t,enumerable:!0})}function i(e,t){i.super_.call(this,\"D\",e),Object.defineProperty(this,\"lhs\",{value:t,enumerable:!0})}function a(e,t,r){a.super_.call(this,\"A\",e),Object.defineProperty(this,\"index\",{value:t,enumerable:!0}),Object.defineProperty(this,\"item\",{value:r,enumerable:!0})}function f(e,t,r){var n=e.slice((r||t)+1||e.length);return e.length=t<0?e.length+t:t,e.push.apply(e,n),e}function u(e){var t=\"undefined\"==typeof e?\"undefined\":N(e);return\"object\"!==t?t:e===Math?\"math\":null===e?\"null\":Array.isArray(e)?\"array\":\"[object Date]\"===Object.prototype.toString.call(e)?\"date\":\"function\"==typeof e.toString&&/^\\/.*\\//.test(e.toString())?\"regexp\":\"object\"}function l(e,t,r,c,s,d,p){s=s||[],p=p||[];var g=s.slice(0);if(\"undefined\"!=typeof d){if(c){if(\"function\"==typeof c&&c(g,d))return;if(\"object\"===(\"undefined\"==typeof c?\"undefined\":N(c))){if(c.prefilter&&c.prefilter(g,d))return;if(c.normalize){var h=c.normalize(g,d,e,t);h&&(e=h[0],t=h[1])}}}g.push(d)}\"regexp\"===u(e)&&\"regexp\"===u(t)&&(e=e.toString(),t=t.toString());var y=\"undefined\"==typeof e?\"undefined\":N(e),v=\"undefined\"==typeof t?\"undefined\":N(t),b=\"undefined\"!==y||p&&p[p.length-1].lhs&&p[p.length-1].lhs.hasOwnProperty(d),m=\"undefined\"!==v||p&&p[p.length-1].rhs&&p[p.length-1].rhs.hasOwnProperty(d);if(!b&&m)r(new o(g,t));else if(!m&&b)r(new i(g,e));else if(u(e)!==u(t))r(new n(g,e,t));else if(\"date\"===u(e)&&e-t!==0)r(new n(g,e,t));else if(\"object\"===y&&null!==e&&null!==t)if(p.filter(function(t){return t.lhs===e}).length)e!==t&&r(new n(g,e,t));else{if(p.push({lhs:e,rhs:t}),Array.isArray(e)){var w;e.length;for(w=0;w=t.length?r(new a(g,w,new i(void 0,e[w]))):l(e[w],t[w],r,c,g,w,p);for(;w=0?(l(e[n],t[n],r,c,g,n,p),S=f(S,i)):l(e[n],void 0,r,c,g,n,p)}),S.forEach(function(e){l(void 0,t[e],r,c,g,e,p)})}p.length=p.length-1}else e!==t&&(\"number\"===y&&isNaN(e)&&isNaN(t)||r(new n(g,e,t)))}function c(e,t,r,n){return n=n||[],l(e,t,function(e){e&&n.push(e)},r),n.length?n:void 0}function s(e,t,r){if(r.path&&r.path.length){var n,o=e[t],i=r.path.length-1;for(n=0;n0&&void 0!==arguments[0]?arguments[0]:{},t=Object.assign({},L,e),r=t.logger,n=t.stateTransformer,o=t.errorTransformer,i=t.predicate,a=t.logErrors,f=t.diffPredicate;if(\"undefined\"==typeof r)return function(){return function(e){return function(t){return e(t)}}};if(e.getState&&e.dispatch)return console.error(\"[redux-logger] redux-logger not installed. Make sure to pass logger instance as middleware:\\n// Logger with default options\\nimport { logger } from 'redux-logger'\\nconst store = createStore(\\n reducer,\\n applyMiddleware(logger)\\n)\\n// Or you can create your own logger with custom options http://bit.ly/redux-logger-options\\nimport createLogger from 'redux-logger'\\nconst logger = createLogger({\\n // ...options\\n});\\nconst store = createStore(\\n reducer,\\n applyMiddleware(logger)\\n)\\n\"),function(){return function(e){return function(t){return e(t)}}};var u=[];return function(e){var r=e.getState;return function(e){return function(l){if(\"function\"==typeof i&&!i(r,l))return e(l);var c={};u.push(c),c.started=O.now(),c.startedTime=new Date,c.prevState=n(r()),c.action=l;var s=void 0;if(a)try{s=e(l)}catch(e){c.error=o(e)}else s=e(l);c.took=O.now()-c.started,c.nextState=n(r());var d=t.diff&&\"function\"==typeof f?f(r,l):t.diff;if(x(u,Object.assign({},t,{diff:d})),u.length=0,c.error)throw c.error;return s}}}}var k,j,E=function(e,t){return new Array(t+1).join(e)},A=function(e,t){return E(\"0\",t-e.toString().length)+e},D=function(e){return A(e.getHours(),2)+\":\"+A(e.getMinutes(),2)+\":\"+A(e.getSeconds(),2)+\".\"+A(e.getMilliseconds(),3)},O=\"undefined\"!=typeof performance&&null!==performance&&\"function\"==typeof performance.now?performance:Date,N=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},P=function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t0&&void 0!==arguments[0]?arguments[0]:{},t=e.dispatch,r=e.getState;return\"function\"==typeof t||\"function\"==typeof r?S()({dispatch:t,getState:r}):void console.error(\"\\n[redux-logger v3] BREAKING CHANGE\\n[redux-logger v3] Since 3.0.0 redux-logger exports by default logger with default settings.\\n[redux-logger v3] Change\\n[redux-logger v3] import createLogger from 'redux-logger'\\n[redux-logger v3] to\\n[redux-logger v3] import { createLogger } from 'redux-logger'\\n\")};e.defaults=L,e.createLogger=S,e.logger=T,e.default=T,Object.defineProperty(e,\"__esModule\",{value:!0})});\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = autoMergeLevel1;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/*\n autoMergeLevel1: \n - merges 1 level of substate\n - skips substate if already modified\n*/\nfunction autoMergeLevel1(inboundState, originalState, reducedState, _ref) {\n var debug = _ref.debug;\n\n var newState = _objectSpread({}, reducedState); // only rehydrate if inboundState exists and is an object\n\n\n if (inboundState && _typeof(inboundState) === 'object') {\n Object.keys(inboundState).forEach(function (key) {\n // ignore _persist data\n if (key === '_persist') return; // if reducer modifies substate, skip auto rehydration\n\n if (originalState[key] !== reducedState[key]) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist/stateReconciler: sub state for key `%s` modified, skipping.', key);\n return;\n } // otherwise hard set the new value\n\n\n newState[key] = inboundState[key];\n });\n }\n\n if (process.env.NODE_ENV !== 'production' && debug && inboundState && _typeof(inboundState) === 'object') console.log(\"redux-persist/stateReconciler: rehydrated keys '\".concat(Object.keys(inboundState).join(', '), \"'\"));\n return newState;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = createWebStorage;\n\nvar _getStorage = _interopRequireDefault(require(\"./getStorage\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction createWebStorage(type) {\n var storage = (0, _getStorage.default)(type);\n return {\n getItem: function getItem(key) {\n return new Promise(function (resolve, reject) {\n resolve(storage.getItem(key));\n });\n },\n setItem: function setItem(key, item) {\n return new Promise(function (resolve, reject) {\n resolve(storage.setItem(key, item));\n });\n },\n removeItem: function removeItem(key) {\n return new Promise(function (resolve, reject) {\n resolve(storage.removeItem(key));\n });\n }\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = getStorage;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction noop() {}\n\nvar noopStorage = {\n getItem: noop,\n setItem: noop,\n removeItem: noop\n};\n\nfunction hasStorage(storageType) {\n if ((typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) !== 'object' || !(storageType in self)) {\n return false;\n }\n\n try {\n var storage = self[storageType];\n var testKey = \"redux-persist \".concat(storageType, \" test\");\n storage.setItem(testKey, 'test');\n storage.getItem(testKey);\n storage.removeItem(testKey);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') console.warn(\"redux-persist \".concat(storageType, \" test failed, persistence will be disabled.\"));\n return false;\n }\n\n return true;\n}\n\nfunction getStorage(type) {\n var storageType = \"\".concat(type, \"Storage\");\n if (hasStorage(storageType)) return self[storageType];else {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\"redux-persist failed to create sync storage. falling back to noop storage.\");\n }\n\n return noopStorage;\n }\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _createWebStorage = _interopRequireDefault(require(\"./createWebStorage\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = (0, _createWebStorage.default)('local');\n\nexports.default = _default;","/**\n * @license React\n * use-sync-external-store-with-selector.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var g=require(\"react\");function n(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var p=\"function\"===typeof Object.is?Object.is:n,q=g.useSyncExternalStore,r=g.useRef,t=g.useEffect,u=g.useMemo,v=g.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,h){var c=r(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=u(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==h&&f.hasValue){var b=f.value;if(h(b,a))return k=b}return k=a}b=k;if(p(d,a))return b;var e=l(a);if(void 0!==h&&h(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,h]);var d=q(a,c[0],c[1]);\nt(function(){f.hasValue=!0;f.value=d},[d]);v(d);return d};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/use-sync-external-store-with-selector.production.min.js');\n} else {\n module.exports = require('./cjs/use-sync-external-store-with-selector.development.js');\n}\n","/**\n * This file automatically generated from `pre-publish.js`.\n * Do not manually edit.\n */\n\nmodule.exports = {\n \"area\": true,\n \"base\": true,\n \"br\": true,\n \"col\": true,\n \"embed\": true,\n \"hr\": true,\n \"img\": true,\n \"input\": true,\n \"link\": true,\n \"meta\": true,\n \"param\": true,\n \"source\": true,\n \"track\": true,\n \"wbr\": true\n};\n","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst PartytownSnippet = \"/* Partytown 0.7.6 - MIT builder.io */\\n!function(t,e,n,i,r,o,a,d,s,c,p,l){function u(){l||(l=1,\\\"/\\\"==(a=(o.lib||\\\"/~partytown/\\\")+(o.debug?\\\"debug/\\\":\\\"\\\"))[0]&&(s=e.querySelectorAll('script[type=\\\"text/partytown\\\"]'),i!=t?i.dispatchEvent(new CustomEvent(\\\"pt1\\\",{detail:t})):(d=setTimeout(f,1e4),e.addEventListener(\\\"pt0\\\",w),r?h(1):n.serviceWorker?n.serviceWorker.register(a+(o.swPath||\\\"partytown-sw.js\\\"),{scope:a}).then((function(t){t.active?h():t.installing&&t.installing.addEventListener(\\\"statechange\\\",(function(t){\\\"activated\\\"==t.target.state&&h()}))}),console.error):f())))}function h(t){c=e.createElement(t?\\\"script\\\":\\\"iframe\\\"),t||(c.setAttribute(\\\"style\\\",\\\"display:block;width:0;height:0;border:0;visibility:hidden\\\"),c.setAttribute(\\\"aria-hidden\\\",!0)),c.src=a+\\\"partytown-\\\"+(t?\\\"atomics.js?v=0.7.6\\\":\\\"sandbox-sw.html?\\\"+Date.now()),e.body.appendChild(c)}function f(n,r){for(w(),i==t&&(o.forward||[]).map((function(e){delete t[e.split(\\\".\\\")[0]]})),n=0;n {\n const { forward = [], ...filteredConfig } = config || {};\n const configStr = JSON.stringify(filteredConfig, (k, v) => {\n if (typeof v === 'function') {\n v = String(v);\n if (v.startsWith(k + '(')) {\n v = 'function ' + v;\n }\n }\n return v;\n });\n return [\n `!(function(w,p,f,c){`,\n Object.keys(filteredConfig).length > 0\n ? `c=w[p]=Object.assign(w[p]||{},${configStr});`\n : `c=w[p]=w[p]||{};`,\n `c[f]=(c[f]||[])`,\n forward.length > 0 ? `.concat(${JSON.stringify(forward)})` : ``,\n `})(window,'partytown','forward');`,\n snippetCode,\n ].join('');\n};\n\n/**\n * The `type` attribute for Partytown scripts, which does two things:\n *\n * 1. Prevents the ` +
IVANNIKOV.PRO

Title

Sub Title

Text

Text

Text

Sub Title

Text

Text

IVANNIKOV.PRO

Text

Text

Next Title
Next Title
- \ No newline at end of file + \ No newline at end of file diff --git a/blog/index.html b/blog/index.html index 259a019..708269f 100644 --- a/blog/index.html +++ b/blog/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/48961b63b6895ca1a3cfd06c6a33e8758536e77c-2f81b2f96a88463aa92d.js b/c1a8d53919aac013110a556e7c1df2a0bde7a21b-984ef2615b020cc6aa5c.js similarity index 79% rename from 48961b63b6895ca1a3cfd06c6a33e8758536e77c-2f81b2f96a88463aa92d.js rename to c1a8d53919aac013110a556e7c1df2a0bde7a21b-984ef2615b020cc6aa5c.js index 60a2559..ec1da2d 100644 --- a/48961b63b6895ca1a3cfd06c6a33e8758536e77c-2f81b2f96a88463aa92d.js +++ b/c1a8d53919aac013110a556e7c1df2a0bde7a21b-984ef2615b020cc6aa5c.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkivannikov_pro_website=self.webpackChunkivannikov_pro_website||[]).push([[393],{2532:function(e,t,a){a.d(t,{L:function(){return m},M:function(){return k},P:function(){return E},S:function(){return H},_:function(){return o},a:function(){return i},b:function(){return u},g:function(){return d},h:function(){return l}});var r=a(6540),n=(a(5147),a(5556)),s=a.n(n);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(n[a]=e[a]);return n}const l=()=>"undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;function c(e,t,a){const r={};let n="gatsby-image-wrapper";return"fixed"===a?(r.width=e,r.height=t):"constrained"===a&&(n="gatsby-image-wrapper gatsby-image-wrapper-constrained"),{className:n,"data-gatsby-image-wrapper":"",style:r}}function u(e,t,a,r,n){return void 0===n&&(n={}),i({},a,{loading:r,shouldLoad:e,"data-main-image":"",style:i({},n,{opacity:t?1:0})})}function d(e,t,a,r,n,s,o,l){const c={};s&&(c.backgroundColor=s,"fixed"===a?(c.width=r,c.height=n,c.backgroundColor=s,c.position="relative"):("constrained"===a||"fullWidth"===a)&&(c.position="absolute",c.top=0,c.left=0,c.bottom=0,c.right=0)),o&&(c.objectFit=o),l&&(c.objectPosition=l);const u=i({},e,{"aria-hidden":!0,"data-placeholder-image":"",style:i({opacity:t?0:1,transition:"opacity 500ms linear"},c)});return u}const p=["children"],g=function(e){let{layout:t,width:a,height:n}=e;return"fullWidth"===t?r.createElement("div",{"aria-hidden":!0,style:{paddingTop:n/a*100+"%"}}):"constrained"===t?r.createElement("div",{style:{maxWidth:a,display:"block"}},r.createElement("img",{alt:"",role:"presentation","aria-hidden":"true",src:"data:image/svg+xml;charset=utf-8,%3Csvg%20height='"+n+"'%20width='"+a+"'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E",style:{maxWidth:"100%",display:"block",position:"static"}})):null},m=function(e){let{children:t}=e,a=o(e,p);return r.createElement(r.Fragment,null,r.createElement(g,i({},a)),t,null)},h=["src","srcSet","loading","alt","shouldLoad"],f=["fallback","sources","shouldLoad"],y=function(e){let{src:t,srcSet:a,loading:n,alt:s="",shouldLoad:l}=e,c=o(e,h);return r.createElement("img",i({},c,{decoding:"async",loading:n,src:l?t:void 0,"data-src":l?void 0:t,srcSet:l?a:void 0,"data-srcset":l?void 0:a,alt:s}))},b=function(e){let{fallback:t,sources:a=[],shouldLoad:n=!0}=e,s=o(e,f);const l=s.sizes||(null==t?void 0:t.sizes),c=r.createElement(y,i({},s,t,{sizes:l,shouldLoad:n}));return a.length?r.createElement("picture",null,a.map((e=>{let{media:t,srcSet:a,type:s}=e;return r.createElement("source",{key:t+"-"+s+"-"+a,type:s,media:t,srcSet:n?a:void 0,"data-srcset":n?void 0:a,sizes:l})})),c):c};var v;y.propTypes={src:n.string.isRequired,alt:n.string.isRequired,sizes:n.string,srcSet:n.string,shouldLoad:n.bool},b.displayName="Picture",b.propTypes={alt:n.string.isRequired,shouldLoad:n.bool,fallback:n.exact({src:n.string.isRequired,srcSet:n.string,sizes:n.string}),sources:n.arrayOf(n.oneOfType([n.exact({media:n.string.isRequired,type:n.string,sizes:n.string,srcSet:n.string.isRequired}),n.exact({media:n.string,type:n.string.isRequired,sizes:n.string,srcSet:n.string.isRequired})]))};const w=["fallback"],E=function(e){let{fallback:t}=e,a=o(e,w);return t?r.createElement(b,i({},a,{fallback:{src:t},"aria-hidden":!0,alt:""})):r.createElement("div",i({},a))};E.displayName="Placeholder",E.propTypes={fallback:n.string,sources:null==(v=b.propTypes)?void 0:v.sources,alt:function(e,t,a){return e[t]?new Error("Invalid prop `"+t+"` supplied to `"+a+"`. Validation failed."):null}};const k=function(e){return r.createElement(r.Fragment,null,r.createElement(b,i({},e)),r.createElement("noscript",null,r.createElement(b,i({},e,{shouldLoad:!0}))))};k.displayName="MainImage",k.propTypes=b.propTypes;const L=["as","className","class","style","image","loading","imgClassName","imgStyle","backgroundColor","objectFit","objectPosition"],C=["style","className"],S=e=>e.replace(/\n/g,""),x=function(e,t,a){for(var r=arguments.length,n=new Array(r>3?r-3:0),i=3;iJSON.stringify(n.images)),[n.images]);p&&(d=p);const x=function(e,t,a){let r="";return"fullWidth"===e&&(r=''),"constrained"===e&&(r='
"),r}(v,y,b);return(0,r.useEffect)((()=>{O||(O=a.e(108).then(a.bind(a,8727)).then((e=>{let{renderImageToString:t,swapPlaceholderImage:a}=e;return j=t,{renderImageToString:t,swapPlaceholderImage:a}})));const e=C.current.querySelector("[data-gatsby-image-ssr]");if(e&&l())return e.complete?(null==g||g({wasCached:!0}),null==m||m({wasCached:!0}),setTimeout((()=>{e.removeAttribute("data-gatsby-image-ssr")}),0)):(null==g||g({wasCached:!0}),e.addEventListener("load",(function t(){e.removeEventListener("load",t),null==m||m({wasCached:!0}),setTimeout((()=>{e.removeAttribute("data-gatsby-image-ssr")}),0)}))),void I.add(S);if(j&&I.has(S))return;let t,r;return O.then((e=>{let{renderImageToString:a,swapPlaceholderImage:o}=e;C.current&&(C.current.innerHTML=a(i({isLoading:!0,isLoaded:I.has(S),image:n},f)),I.has(S)||(t=requestAnimationFrame((()=>{C.current&&(r=o(C.current,S,I,s,g,m,h))}))))})),()=>{t&&cancelAnimationFrame(t),r&&r()}}),[n]),(0,r.useLayoutEffect)((()=>{I.has(S)&&j&&(C.current.innerHTML=j(i({isLoading:I.has(S),isLoaded:I.has(S),image:n},f)),null==g||g({wasCached:!0}),null==m||m({wasCached:!0}))}),[n]),(0,r.createElement)(t,i({},L,{style:i({},E,s,{backgroundColor:u}),className:k+(d?" "+d:""),ref:C,dangerouslySetInnerHTML:{__html:x},suppressHydrationWarning:!0}))},q=(0,r.memo)((function(e){return e.image?(0,r.createElement)(R,e):null}));q.propTypes=N,q.displayName="GatsbyImage";const A=["src","__imageData","__error","width","height","aspectRatio","tracedSVGOptions","placeholder","formats","quality","transformOptions","jpgOptions","pngOptions","webpOptions","avifOptions","blurredOptions","breakpoints","outputPixelDensities"];function P(e){return function(t){let{src:a,__imageData:n,__error:s}=t,l=o(t,A);return s&&console.warn(s),n?r.createElement(e,i({image:n},l)):(console.warn("Image not loaded",a),null)}}const z=P((function(e){let{as:t="div",className:a,class:n,style:s,image:l,loading:p="lazy",imgClassName:g,imgStyle:h,backgroundColor:f,objectFit:y,objectPosition:b}=e,v=o(e,L);if(!l)return console.warn("[gatsby-plugin-image] Missing image prop"),null;n&&(a=n),h=i({objectFit:y,objectPosition:b,backgroundColor:f},h);const{width:w,height:x,layout:N,images:T,placeholder:_,backgroundColor:I}=l,O=c(w,x,N),{style:j,className:R}=O,q=o(O,C),A={fallback:void 0,sources:[]};return T.fallback&&(A.fallback=i({},T.fallback,{srcSet:T.fallback.srcSet?S(T.fallback.srcSet):void 0})),T.sources&&(A.sources=T.sources.map((e=>i({},e,{srcSet:S(e.srcSet)})))),r.createElement(t,i({},q,{style:i({},j,s,{backgroundColor:f}),className:R+(a?" "+a:"")}),r.createElement(m,{layout:N,width:w,height:x},r.createElement(E,i({},d(_,!1,N,w,x,I,y,b))),r.createElement(k,i({"data-gatsby-image-ssr":"",className:g},v,u("eager"===p,!1,A,p,h)))))})),W=function(e,t){for(var a=arguments.length,r=new Array(a>2?a-2:0),n=2;n{if(void 0!==e.layout&&!M.has(e.layout))return new Error("Invalid value "+e.layout+'" provided for prop "layout". Defaulting to "constrained". Valid values are "fixed", "fullWidth" or "constrained".')}};z.displayName="StaticImage",z.propTypes=F;const H=P(q);H.displayName="StaticImage",H.propTypes=F},5147:function(e){const t=/[\p{Lu}]/u,a=/[\p{Ll}]/u,r=/^[\p{Lu}](?![\p{Lu}])/gu,n=/([\p{Alpha}\p{N}_]|$)/u,s=/[_.\- ]+/,i=new RegExp("^"+s.source),o=new RegExp(s.source+n.source,"gu"),l=new RegExp("\\d+"+n.source,"gu"),c=(e,n)=>{if("string"!=typeof e&&!Array.isArray(e))throw new TypeError("Expected the input to be `string | string[]`");if(n={pascalCase:!1,preserveConsecutiveUppercase:!1,...n},0===(e=Array.isArray(e)?e.map((e=>e.trim())).filter((e=>e.length)).join("-"):e.trim()).length)return"";const s=!1===n.locale?e=>e.toLowerCase():e=>e.toLocaleLowerCase(n.locale),c=!1===n.locale?e=>e.toUpperCase():e=>e.toLocaleUpperCase(n.locale);if(1===e.length)return n.pascalCase?c(e):s(e);return e!==s(e)&&(e=((e,r,n)=>{let s=!1,i=!1,o=!1;for(let l=0;l(r.lastIndex=0,e.replace(r,(e=>t(e)))))(e,s):s(e),n.pascalCase&&(e=c(e.charAt(0))+e.slice(1)),((e,t)=>(o.lastIndex=0,l.lastIndex=0,e.replace(o,((e,a)=>t(a))).replace(l,(e=>t(e)))))(e,c)};e.exports=c,e.exports.default=c},1563:function(e,t,a){a.d(t,{A:function(){return s}});var r=a(6540),n=a(6711);function s(e){let{children:t,to:a,text:s}=e;return s?r.createElement(n.N,{to:a,className:"inner__link"},s):r.createElement(n.N,{to:a,className:"inner__link"},t)}}}]); -//# sourceMappingURL=48961b63b6895ca1a3cfd06c6a33e8758536e77c-2f81b2f96a88463aa92d.js.map \ No newline at end of file +"use strict";(self.webpackChunkivannikov_pro_website=self.webpackChunkivannikov_pro_website||[]).push([[334],{2532:function(e,t,a){a.d(t,{L:function(){return m},M:function(){return k},P:function(){return E},S:function(){return H},_:function(){return o},a:function(){return i},b:function(){return u},g:function(){return d},h:function(){return l}});var r=a(6540),n=(a(5147),a(5556)),s=a.n(n);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(n[a]=e[a]);return n}const l=()=>"undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;function c(e,t,a){const r={};let n="gatsby-image-wrapper";return"fixed"===a?(r.width=e,r.height=t):"constrained"===a&&(n="gatsby-image-wrapper gatsby-image-wrapper-constrained"),{className:n,"data-gatsby-image-wrapper":"",style:r}}function u(e,t,a,r,n){return void 0===n&&(n={}),i({},a,{loading:r,shouldLoad:e,"data-main-image":"",style:i({},n,{opacity:t?1:0})})}function d(e,t,a,r,n,s,o,l){const c={};s&&(c.backgroundColor=s,"fixed"===a?(c.width=r,c.height=n,c.backgroundColor=s,c.position="relative"):("constrained"===a||"fullWidth"===a)&&(c.position="absolute",c.top=0,c.left=0,c.bottom=0,c.right=0)),o&&(c.objectFit=o),l&&(c.objectPosition=l);const u=i({},e,{"aria-hidden":!0,"data-placeholder-image":"",style:i({opacity:t?0:1,transition:"opacity 500ms linear"},c)});return u}const p=["children"],g=function(e){let{layout:t,width:a,height:n}=e;return"fullWidth"===t?r.createElement("div",{"aria-hidden":!0,style:{paddingTop:n/a*100+"%"}}):"constrained"===t?r.createElement("div",{style:{maxWidth:a,display:"block"}},r.createElement("img",{alt:"",role:"presentation","aria-hidden":"true",src:"data:image/svg+xml;charset=utf-8,%3Csvg%20height='"+n+"'%20width='"+a+"'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E",style:{maxWidth:"100%",display:"block",position:"static"}})):null},m=function(e){let{children:t}=e,a=o(e,p);return r.createElement(r.Fragment,null,r.createElement(g,i({},a)),t,null)},h=["src","srcSet","loading","alt","shouldLoad"],y=["fallback","sources","shouldLoad"],f=function(e){let{src:t,srcSet:a,loading:n,alt:s="",shouldLoad:l}=e,c=o(e,h);return r.createElement("img",i({},c,{decoding:"async",loading:n,src:l?t:void 0,"data-src":l?void 0:t,srcSet:l?a:void 0,"data-srcset":l?void 0:a,alt:s}))},b=function(e){let{fallback:t,sources:a=[],shouldLoad:n=!0}=e,s=o(e,y);const l=s.sizes||(null==t?void 0:t.sizes),c=r.createElement(f,i({},s,t,{sizes:l,shouldLoad:n}));return a.length?r.createElement("picture",null,a.map((e=>{let{media:t,srcSet:a,type:s}=e;return r.createElement("source",{key:t+"-"+s+"-"+a,type:s,media:t,srcSet:n?a:void 0,"data-srcset":n?void 0:a,sizes:l})})),c):c};var v;f.propTypes={src:n.string.isRequired,alt:n.string.isRequired,sizes:n.string,srcSet:n.string,shouldLoad:n.bool},b.displayName="Picture",b.propTypes={alt:n.string.isRequired,shouldLoad:n.bool,fallback:n.exact({src:n.string.isRequired,srcSet:n.string,sizes:n.string}),sources:n.arrayOf(n.oneOfType([n.exact({media:n.string.isRequired,type:n.string,sizes:n.string,srcSet:n.string.isRequired}),n.exact({media:n.string,type:n.string.isRequired,sizes:n.string,srcSet:n.string.isRequired})]))};const w=["fallback"],E=function(e){let{fallback:t}=e,a=o(e,w);return t?r.createElement(b,i({},a,{fallback:{src:t},"aria-hidden":!0,alt:""})):r.createElement("div",i({},a))};E.displayName="Placeholder",E.propTypes={fallback:n.string,sources:null==(v=b.propTypes)?void 0:v.sources,alt:function(e,t,a){return e[t]?new Error("Invalid prop `"+t+"` supplied to `"+a+"`. Validation failed."):null}};const k=function(e){return r.createElement(r.Fragment,null,r.createElement(b,i({},e)),r.createElement("noscript",null,r.createElement(b,i({},e,{shouldLoad:!0}))))};k.displayName="MainImage",k.propTypes=b.propTypes;const L=["as","className","class","style","image","loading","imgClassName","imgStyle","backgroundColor","objectFit","objectPosition"],C=["style","className"],S=e=>e.replace(/\n/g,""),x=function(e,t,a){for(var r=arguments.length,n=new Array(r>3?r-3:0),i=3;iJSON.stringify(n.images)),[n.images]);p&&(d=p);const x=function(e,t,a){let r="";return"fullWidth"===e&&(r=''),"constrained"===e&&(r='
"),r}(v,f,b);return(0,r.useEffect)((()=>{O||(O=a.e(108).then(a.bind(a,8727)).then((e=>{let{renderImageToString:t,swapPlaceholderImage:a}=e;return j=t,{renderImageToString:t,swapPlaceholderImage:a}})));const e=C.current.querySelector("[data-gatsby-image-ssr]");if(e&&l())return e.complete?(null==g||g({wasCached:!0}),null==m||m({wasCached:!0}),setTimeout((()=>{e.removeAttribute("data-gatsby-image-ssr")}),0)):(null==g||g({wasCached:!0}),e.addEventListener("load",(function t(){e.removeEventListener("load",t),null==m||m({wasCached:!0}),setTimeout((()=>{e.removeAttribute("data-gatsby-image-ssr")}),0)}))),void _.add(S);if(j&&_.has(S))return;let t,r;return O.then((e=>{let{renderImageToString:a,swapPlaceholderImage:o}=e;C.current&&(C.current.innerHTML=a(i({isLoading:!0,isLoaded:_.has(S),image:n},y)),_.has(S)||(t=requestAnimationFrame((()=>{C.current&&(r=o(C.current,S,_,s,g,m,h))}))))})),()=>{t&&cancelAnimationFrame(t),r&&r()}}),[n]),(0,r.useLayoutEffect)((()=>{_.has(S)&&j&&(C.current.innerHTML=j(i({isLoading:_.has(S),isLoaded:_.has(S),image:n},y)),null==g||g({wasCached:!0}),null==m||m({wasCached:!0}))}),[n]),(0,r.createElement)(t,i({},L,{style:i({},E,s,{backgroundColor:u}),className:k+(d?" "+d:""),ref:C,dangerouslySetInnerHTML:{__html:x},suppressHydrationWarning:!0}))},q=(0,r.memo)((function(e){return e.image?(0,r.createElement)(R,e):null}));q.propTypes=T,q.displayName="GatsbyImage";const A=["src","__imageData","__error","width","height","aspectRatio","tracedSVGOptions","placeholder","formats","quality","transformOptions","jpgOptions","pngOptions","webpOptions","avifOptions","blurredOptions","breakpoints","outputPixelDensities"];function P(e){return function(t){let{src:a,__imageData:n,__error:s}=t,l=o(t,A);return s&&console.warn(s),n?r.createElement(e,i({image:n},l)):(console.warn("Image not loaded",a),null)}}const z=P((function(e){let{as:t="div",className:a,class:n,style:s,image:l,loading:p="lazy",imgClassName:g,imgStyle:h,backgroundColor:y,objectFit:f,objectPosition:b}=e,v=o(e,L);if(!l)return console.warn("[gatsby-plugin-image] Missing image prop"),null;n&&(a=n),h=i({objectFit:f,objectPosition:b,backgroundColor:y},h);const{width:w,height:x,layout:T,images:N,placeholder:I,backgroundColor:_}=l,O=c(w,x,T),{style:j,className:R}=O,q=o(O,C),A={fallback:void 0,sources:[]};return N.fallback&&(A.fallback=i({},N.fallback,{srcSet:N.fallback.srcSet?S(N.fallback.srcSet):void 0})),N.sources&&(A.sources=N.sources.map((e=>i({},e,{srcSet:S(e.srcSet)})))),r.createElement(t,i({},q,{style:i({},j,s,{backgroundColor:y}),className:R+(a?" "+a:"")}),r.createElement(m,{layout:T,width:w,height:x},r.createElement(E,i({},d(I,!1,T,w,x,_,f,b))),r.createElement(k,i({"data-gatsby-image-ssr":"",className:g},v,u("eager"===p,!1,A,p,h)))))})),W=function(e,t){for(var a=arguments.length,r=new Array(a>2?a-2:0),n=2;n{if(void 0!==e.layout&&!M.has(e.layout))return new Error("Invalid value "+e.layout+'" provided for prop "layout". Defaulting to "constrained". Valid values are "fixed", "fullWidth" or "constrained".')}};z.displayName="StaticImage",z.propTypes=F;const H=P(q);H.displayName="StaticImage",H.propTypes=F},5147:function(e){const t=/[\p{Lu}]/u,a=/[\p{Ll}]/u,r=/^[\p{Lu}](?![\p{Lu}])/gu,n=/([\p{Alpha}\p{N}_]|$)/u,s=/[_.\- ]+/,i=new RegExp("^"+s.source),o=new RegExp(s.source+n.source,"gu"),l=new RegExp("\\d+"+n.source,"gu"),c=(e,n)=>{if("string"!=typeof e&&!Array.isArray(e))throw new TypeError("Expected the input to be `string | string[]`");if(n={pascalCase:!1,preserveConsecutiveUppercase:!1,...n},0===(e=Array.isArray(e)?e.map((e=>e.trim())).filter((e=>e.length)).join("-"):e.trim()).length)return"";const s=!1===n.locale?e=>e.toLowerCase():e=>e.toLocaleLowerCase(n.locale),c=!1===n.locale?e=>e.toUpperCase():e=>e.toLocaleUpperCase(n.locale);if(1===e.length)return n.pascalCase?c(e):s(e);return e!==s(e)&&(e=((e,r,n)=>{let s=!1,i=!1,o=!1;for(let l=0;l(r.lastIndex=0,e.replace(r,(e=>t(e)))))(e,s):s(e),n.pascalCase&&(e=c(e.charAt(0))+e.slice(1)),((e,t)=>(o.lastIndex=0,l.lastIndex=0,e.replace(o,((e,a)=>t(a))).replace(l,(e=>t(e)))))(e,c)};e.exports=c,e.exports.default=c}}]); +//# sourceMappingURL=c1a8d53919aac013110a556e7c1df2a0bde7a21b-984ef2615b020cc6aa5c.js.map \ No newline at end of file diff --git a/c1a8d53919aac013110a556e7c1df2a0bde7a21b-984ef2615b020cc6aa5c.js.map b/c1a8d53919aac013110a556e7c1df2a0bde7a21b-984ef2615b020cc6aa5c.js.map new file mode 100644 index 0000000..28094ce --- /dev/null +++ b/c1a8d53919aac013110a556e7c1df2a0bde7a21b-984ef2615b020cc6aa5c.js.map @@ -0,0 +1 @@ +{"version":3,"file":"c1a8d53919aac013110a556e7c1df2a0bde7a21b-984ef2615b020cc6aa5c.js","mappings":"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","sources":["webpack://ivannikov.pro-website/../src/image-utils.ts","webpack://ivannikov.pro-website/../src/components/hooks.ts","webpack://ivannikov.pro-website/../src/components/layout-wrapper.tsx","webpack://ivannikov.pro-website/../src/components/picture.tsx","webpack://ivannikov.pro-website/../src/components/placeholder.tsx","webpack://ivannikov.pro-website/../src/components/main-image.tsx","webpack://ivannikov.pro-website/../src/components/gatsby-image.server.tsx","webpack://ivannikov.pro-website/../src/components/gatsby-image.browser.tsx","webpack://ivannikov.pro-website/../src/components/static-image.server.tsx","webpack://ivannikov.pro-website/../src/components/static-image.tsx","webpack://ivannikov.pro-website/./node_modules/gatsby-plugin-image/node_modules/camelcase/index.js"],"sourcesContent":["import camelCase from \"camelcase\"\nimport type { IGatsbyImageData } from \"./index\"\n\nconst DEFAULT_PIXEL_DENSITIES = [0.25, 0.5, 1, 2]\nexport const DEFAULT_BREAKPOINTS = [750, 1080, 1366, 1920]\nexport const EVERY_BREAKPOINT = [\n 320, 654, 768, 1024, 1366, 1600, 1920, 2048, 2560, 3440, 3840, 4096,\n]\nconst DEFAULT_FLUID_WIDTH = 800\nconst DEFAULT_FIXED_WIDTH = 800\nconst DEFAULT_ASPECT_RATIO = 4 / 3\n\nexport type Fit = \"cover\" | \"fill\" | \"inside\" | \"outside\" | \"contain\"\n\nexport type Layout = \"fixed\" | \"fullWidth\" | \"constrained\"\nexport type ImageFormat = \"jpg\" | \"png\" | \"webp\" | \"avif\" | \"auto\" | \"\"\n\n/**\n * The minimal required reporter, as we don't want to import it from gatsby-cli\n */\nexport interface IReporter {\n warn(message: string): void\n}\n\nexport interface ISharpGatsbyImageArgs {\n layout?: Layout\n formats?: Array\n placeholder?: \"tracedSVG\" | \"dominantColor\" | \"blurred\" | \"none\"\n tracedSVGOptions?: Record\n width?: number\n height?: number\n aspectRatio?: number\n sizes?: string\n quality?: number\n transformOptions?: {\n fit?: Fit\n cropFocus?: number | string\n duotone?: {\n highlight: string\n shadow: string\n opacity?: number\n }\n grayscale?: boolean\n rotate?: number\n trim?: number\n }\n jpgOptions?: Record\n pngOptions?: Record\n webpOptions?: Record\n avifOptions?: Record\n blurredOptions?: { width?: number; toFormat?: ImageFormat }\n breakpoints?: Array\n outputPixelDensities?: Array\n backgroundColor?: string\n}\n\nexport interface IImageSizeArgs {\n width?: number\n height?: number\n layout?: Layout\n filename: string\n outputPixelDensities?: Array\n breakpoints?: Array\n fit?: Fit\n reporter?: IReporter\n sourceMetadata: { width: number; height: number }\n}\n\nexport interface IImageSizes {\n sizes: Array\n presentationWidth: number\n presentationHeight: number\n aspectRatio: number\n unscaledWidth: number\n}\n\nexport interface IImage {\n src: string\n width: number\n height: number\n format: ImageFormat\n}\n\nexport interface IGatsbyImageHelperArgs {\n pluginName: string\n generateImageSource: (\n filename: string,\n width: number,\n height: number,\n format: ImageFormat,\n fit?: Fit,\n options?: Record\n ) => IImage\n layout?: Layout\n formats?: Array\n filename: string\n placeholderURL?: string\n width?: number\n height?: number\n sizes?: string\n reporter?: IReporter\n sourceMetadata?: { width: number; height: number; format: ImageFormat }\n fit?: Fit\n options?: Record\n breakpoints?: Array\n backgroundColor?: string\n aspectRatio?: number\n}\n\nconst warn = (message: string): void => console.warn(message)\n\nconst sortNumeric = (a: number, b: number): number => a - b\n\nexport const getSizes = (width: number, layout: Layout): string | undefined => {\n switch (layout) {\n // If screen is wider than the max size, image width is the max size,\n // otherwise it's the width of the screen\n case `constrained`:\n return `(min-width: ${width}px) ${width}px, 100vw`\n\n // Image is always the same width, whatever the size of the screen\n case `fixed`:\n return `${width}px`\n\n // Image is always the width of the screen\n case `fullWidth`:\n return `100vw`\n\n default:\n return undefined\n }\n}\n\nexport const getSrcSet = (images: Array): string =>\n images.map(image => `${image.src} ${image.width}w`).join(`,\\n`)\n\nexport function formatFromFilename(filename: string): ImageFormat | undefined {\n const dot = filename.lastIndexOf(`.`)\n if (dot !== -1) {\n const ext = filename.slice(dot + 1)\n if (ext === `jpeg`) {\n return `jpg`\n }\n if (ext.length === 3 || ext.length === 4) {\n return ext as ImageFormat\n }\n }\n return undefined\n}\n\nexport function setDefaultDimensions(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageHelperArgs {\n let {\n layout = `constrained`,\n width,\n height,\n sourceMetadata,\n breakpoints,\n aspectRatio,\n formats = [`auto`, `webp`],\n } = args\n formats = formats.map(format => format.toLowerCase() as ImageFormat)\n layout = camelCase(layout) as Layout\n\n if (width && height) {\n return { ...args, formats, layout, aspectRatio: width / height }\n }\n if (sourceMetadata.width && sourceMetadata.height && !aspectRatio) {\n aspectRatio = sourceMetadata.width / sourceMetadata.height\n }\n\n if (layout === `fullWidth`) {\n width = width || sourceMetadata.width || breakpoints[breakpoints.length - 1]\n height = height || Math.round(width / (aspectRatio || DEFAULT_ASPECT_RATIO))\n } else {\n if (!width) {\n if (height && aspectRatio) {\n width = height * aspectRatio\n } else if (sourceMetadata.width) {\n width = sourceMetadata.width\n } else if (height) {\n width = Math.round(height / DEFAULT_ASPECT_RATIO)\n } else {\n width = DEFAULT_FIXED_WIDTH\n }\n }\n\n if (aspectRatio && !height) {\n height = Math.round(width / aspectRatio)\n } else if (!aspectRatio) {\n aspectRatio = width / height\n }\n }\n return { ...args, width, height, aspectRatio, layout, formats }\n}\n\n/**\n * Use this for getting an image for the blurred placeholder. This ensures the\n * aspect ratio and crop match the main image\n */\nexport function getLowResolutionImageURL(\n args: IGatsbyImageHelperArgs,\n width = 20\n): string {\n args = setDefaultDimensions(args)\n const { generateImageSource, filename, aspectRatio } = args\n return generateImageSource(\n filename,\n width,\n Math.round(width / aspectRatio),\n args.sourceMetadata.format || `jpg`,\n args.fit,\n args.options\n )?.src\n}\n\nexport function generateImageData(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageData {\n args = setDefaultDimensions(args)\n\n let {\n pluginName,\n sourceMetadata,\n generateImageSource,\n layout,\n fit,\n options,\n width,\n height,\n filename,\n reporter = { warn },\n backgroundColor,\n placeholderURL,\n } = args\n\n if (!pluginName) {\n reporter.warn(\n `[gatsby-plugin-image] \"generateImageData\" was not passed a plugin name`\n )\n }\n\n if (typeof generateImageSource !== `function`) {\n throw new Error(`generateImageSource must be a function`)\n }\n\n if (!sourceMetadata || (!sourceMetadata.width && !sourceMetadata.height)) {\n // No metadata means we let the CDN handle max size etc, aspect ratio etc\n sourceMetadata = {\n width,\n height,\n format: sourceMetadata?.format || formatFromFilename(filename) || `auto`,\n }\n } else if (!sourceMetadata.format) {\n sourceMetadata.format = formatFromFilename(filename)\n }\n\n const formats = new Set(args.formats)\n\n if (formats.size === 0 || formats.has(`auto`) || formats.has(``)) {\n formats.delete(`auto`)\n formats.delete(``)\n formats.add(sourceMetadata.format)\n }\n\n if (formats.has(`jpg`) && formats.has(`png`)) {\n reporter.warn(\n `[${pluginName}] Specifying both 'jpg' and 'png' formats is not supported. Using 'auto' instead`\n )\n if (sourceMetadata.format === `jpg`) {\n formats.delete(`png`)\n } else {\n formats.delete(`jpg`)\n }\n }\n\n const imageSizes = calculateImageSizes({ ...args, sourceMetadata })\n\n const result: IGatsbyImageData[\"images\"] = {\n sources: [],\n }\n\n let sizes = args.sizes\n if (!sizes) {\n sizes = getSizes(imageSizes.presentationWidth, layout)\n }\n\n formats.forEach(format => {\n const images = imageSizes.sizes\n .map(size => {\n const imageSrc = generateImageSource(\n filename,\n size,\n Math.round(size / imageSizes.aspectRatio),\n format,\n fit,\n options\n )\n if (\n !imageSrc?.width ||\n !imageSrc.height ||\n !imageSrc.src ||\n !imageSrc.format\n ) {\n reporter.warn(\n `[${pluginName}] The resolver for image ${filename} returned an invalid value.`\n )\n return undefined\n }\n return imageSrc\n })\n .filter(Boolean)\n\n if (format === `jpg` || format === `png` || format === `auto`) {\n const unscaled =\n images.find(img => img.width === imageSizes.unscaledWidth) || images[0]\n\n if (unscaled) {\n result.fallback = {\n src: unscaled.src,\n srcSet: getSrcSet(images),\n sizes,\n }\n }\n } else {\n result.sources?.push({\n srcSet: getSrcSet(images),\n sizes,\n type: `image/${format}`,\n })\n }\n })\n\n const imageProps: Partial = {\n images: result,\n layout,\n backgroundColor,\n }\n\n if (placeholderURL) {\n imageProps.placeholder = { fallback: placeholderURL }\n }\n\n switch (layout) {\n case `fixed`:\n imageProps.width = imageSizes.presentationWidth\n imageProps.height = imageSizes.presentationHeight\n break\n\n case `fullWidth`:\n imageProps.width = 1\n imageProps.height = 1 / imageSizes.aspectRatio\n break\n\n case `constrained`:\n imageProps.width = args.width || imageSizes.presentationWidth || 1\n imageProps.height = (imageProps.width || 1) / imageSizes.aspectRatio\n }\n\n return imageProps as IGatsbyImageData\n}\n\nconst dedupeAndSortDensities = (values: Array): Array =>\n Array.from(new Set([1, ...values])).sort(sortNumeric)\n\nexport function calculateImageSizes(args: IImageSizeArgs): IImageSizes {\n const {\n width,\n height,\n filename,\n layout = `constrained`,\n sourceMetadata: imgDimensions,\n reporter = { warn },\n breakpoints = DEFAULT_BREAKPOINTS,\n } = args\n\n // check that all dimensions provided are positive\n const userDimensions = { width, height }\n const erroneousUserDimensions = Object.entries(userDimensions).filter(\n ([_, size]) => typeof size === `number` && size < 1\n )\n if (erroneousUserDimensions.length) {\n throw new Error(\n `Specified dimensions for images must be positive numbers (> 0). Problem dimensions you have are ${erroneousUserDimensions\n .map(dim => dim.join(`: `))\n .join(`, `)}`\n )\n }\n\n if (layout === `fixed`) {\n return fixedImageSizes(args)\n } else if (layout === `constrained`) {\n return responsiveImageSizes(args)\n } else if (layout === `fullWidth`) {\n return responsiveImageSizes({ breakpoints, ...args })\n } else {\n reporter.warn(\n `No valid layout was provided for the image at ${filename}. Valid image layouts are fixed, fullWidth, and constrained. Found ${layout}`\n )\n return {\n sizes: [imgDimensions.width],\n presentationWidth: imgDimensions.width,\n presentationHeight: imgDimensions.height,\n aspectRatio: imgDimensions.width / imgDimensions.height,\n unscaledWidth: imgDimensions.width,\n }\n }\n}\nexport function fixedImageSizes({\n filename,\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n reporter = { warn },\n}: IImageSizeArgs): IImageSizes {\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n if (!width) {\n if (!height) {\n width = DEFAULT_FIXED_WIDTH\n } else {\n width = Math.round(height * aspectRatio)\n }\n } else if (!height) {\n height = Math.round(width / aspectRatio)\n }\n\n const originalWidth = width // will use this for presentationWidth, don't want to lose it\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n\n // If the image is smaller than requested, warn the user that it's being processed as such\n // print out this message with the necessary information before we overwrite it for sizing\n if (isTopSizeOverriden) {\n const fixedDimension = imgDimensions.width < width ? `width` : `height`\n reporter.warn(`\nThe requested ${fixedDimension} \"${\n fixedDimension === `width` ? width : height\n }px\" for the image ${filename} was larger than the actual image ${fixedDimension} of ${\n imgDimensions[fixedDimension]\n }px. If possible, replace the current image with a larger one.`)\n\n if (fixedDimension === `width`) {\n width = imgDimensions.width\n height = Math.round(width / aspectRatio)\n } else {\n height = imgDimensions.height\n width = height * aspectRatio\n }\n }\n\n const sizes = densities\n .filter(size => size >= 1) // remove smaller densities because fixed images don't need them\n .map(density => Math.round(density * (width as number)))\n .filter(size => size <= imgDimensions.width)\n\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function responsiveImageSizes({\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n breakpoints,\n layout,\n}: IImageSizeArgs): IImageSizes {\n let sizes\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n // Case 1: width of height were passed in, make sure it isn't larger than the actual image\n width = width && Math.min(width, imgDimensions.width)\n height = height && Math.min(height, imgDimensions.height)\n\n // Case 2: neither width or height were passed in, use default size\n if (!width && !height) {\n width = Math.min(DEFAULT_FLUID_WIDTH, imgDimensions.width)\n height = width / aspectRatio\n }\n\n // if it still hasn't been found, calculate width from the derived height.\n // TS isn't smart enough to realise the type for height has been narrowed here\n if (!width) {\n width = (height as number) * aspectRatio\n }\n\n const originalWidth = width\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n if (isTopSizeOverriden) {\n width = imgDimensions.width\n height = imgDimensions.height\n }\n\n width = Math.round(width)\n\n if (breakpoints?.length > 0) {\n sizes = breakpoints.filter(size => size <= imgDimensions.width)\n\n // If a larger breakpoint has been filtered-out, add the actual image width instead\n if (\n sizes.length < breakpoints.length &&\n !sizes.includes(imgDimensions.width)\n ) {\n sizes.push(imgDimensions.width)\n }\n } else {\n sizes = densities.map(density => Math.round(density * (width as number)))\n sizes = sizes.filter(size => size <= imgDimensions.width)\n }\n\n // ensure that the size passed in is included in the final output\n if (layout === `constrained` && !sizes.includes(width)) {\n sizes.push(width)\n }\n sizes = sizes.sort(sortNumeric)\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function getDimensionsAndAspectRatio(\n dimensions,\n options\n): { width: number; height: number; aspectRatio: number } {\n // Calculate the eventual width/height of the image.\n const imageAspectRatio = dimensions.width / dimensions.height\n\n let width = options.width\n let height = options.height\n\n switch (options.fit) {\n case `fill`: {\n width = options.width ? options.width : dimensions.width\n height = options.height ? options.height : dimensions.height\n break\n }\n case `inside`: {\n const widthOption = options.width\n ? options.width\n : Number.MAX_SAFE_INTEGER\n const heightOption = options.height\n ? options.height\n : Number.MAX_SAFE_INTEGER\n\n width = Math.min(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.min(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n case `outside`: {\n const widthOption = options.width ? options.width : 0\n const heightOption = options.height ? options.height : 0\n\n width = Math.max(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.max(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n\n default: {\n if (options.width && !options.height) {\n width = options.width\n height = Math.round(options.width / imageAspectRatio)\n }\n\n if (options.height && !options.width) {\n width = Math.round(options.height * imageAspectRatio)\n height = options.height\n }\n }\n }\n\n return {\n width,\n height,\n aspectRatio: width / height,\n }\n}\n","/* global GATSBY___IMAGE */\nimport { generateImageData, EVERY_BREAKPOINT } from \"../image-utils\"\nimport type { CSSProperties, HTMLAttributes, ImgHTMLAttributes } from \"react\"\nimport type { Node } from \"gatsby\"\nimport type { PlaceholderProps } from \"./placeholder\"\nimport type { MainImageProps } from \"./main-image\"\nimport type { IGatsbyImageData } from \"./gatsby-image.browser\"\nimport type {\n IGatsbyImageHelperArgs,\n Layout,\n IImage,\n ImageFormat,\n} from \"../image-utils\"\n\n// Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\nexport const hasNativeLazyLoadSupport = (): boolean =>\n typeof HTMLImageElement !== `undefined` &&\n `loading` in HTMLImageElement.prototype\n\nexport function gatsbyImageIsInstalled(): boolean {\n return typeof GATSBY___IMAGE !== `undefined` && GATSBY___IMAGE\n}\n\nexport type IGatsbyImageDataParent = T & {\n gatsbyImageData: IGatsbyImageData\n}\nexport type IGatsbyImageParent = T & {\n gatsbyImage: IGatsbyImageData\n}\nexport type FileNode = Partial & {\n childImageSharp?: IGatsbyImageDataParent>\n}\n\nconst isGatsbyImageData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageData | any\n): node is IGatsbyImageData =>\n // 🦆 check for a deep prop to be sure this is a valid gatsbyImageData object\n Boolean(node?.images?.fallback?.src)\n\nconst isGatsbyImageDataParent = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageDataParent | any\n): node is IGatsbyImageDataParent => Boolean(node?.gatsbyImageData)\n\nconst isGatsbyImageParent = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageParent | any\n): node is IGatsbyImageParent => Boolean(node?.gatsbyImage)\n\nexport type ImageDataLike =\n | FileNode\n | IGatsbyImageDataParent\n | IGatsbyImageParent\n | IGatsbyImageData\n\nexport const getImage = (\n node: ImageDataLike | null\n): IGatsbyImageData | undefined => {\n // This checks both for gatsbyImageData and gatsbyImage\n if (isGatsbyImageData(node)) {\n return node\n }\n // gatsbyImageData GraphQL field\n if (isGatsbyImageDataParent(node)) {\n return node.gatsbyImageData\n }\n // gatsbyImage GraphQL field for Gatsby's Image CDN service\n if (isGatsbyImageParent(node)) {\n return node.gatsbyImage\n }\n return node?.childImageSharp?.gatsbyImageData\n}\n\nexport const getSrc = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.src\n\nexport const getSrcSet = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.srcSet\n\nexport function getWrapperProps(\n width: number,\n height: number,\n layout: Layout\n): Pick, \"className\" | \"style\"> & {\n \"data-gatsby-image-wrapper\": string\n} {\n const wrapperStyle: CSSProperties = {}\n\n let className = `gatsby-image-wrapper`\n\n // If the plugin isn't installed we need to apply the styles inline\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.position = `relative`\n wrapperStyle.overflow = `hidden`\n }\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n } else if (layout === `constrained`) {\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.display = `inline-block`\n wrapperStyle.verticalAlign = `top`\n }\n className = `gatsby-image-wrapper gatsby-image-wrapper-constrained`\n }\n\n return {\n className,\n \"data-gatsby-image-wrapper\": ``,\n style: wrapperStyle,\n }\n}\n\nexport interface IUrlBuilderArgs {\n width: number\n height: number\n baseUrl: string\n format: ImageFormat\n options: OptionsType\n}\nexport interface IGetImageDataArgs> {\n baseUrl: string\n /**\n * For constrained and fixed images, the size of the image element\n */\n width?: number\n height?: number\n /**\n * If available, pass the source image width and height\n */\n sourceWidth?: number\n sourceHeight?: number\n /**\n * If only one dimension is passed, then this will be used to calculate the other.\n */\n aspectRatio?: number\n layout?: Layout\n /**\n * Returns a URL based on the passed arguments. Should be a pure function\n */\n urlBuilder: (args: IUrlBuilderArgs) => string\n\n /**\n * Should be a data URI\n */\n placeholderURL?: string\n backgroundColor?: string\n /**\n * Used in error messages etc\n */\n pluginName?: string\n\n /**\n * If you do not support auto-format, pass an array of image types here\n */\n formats?: Array\n\n breakpoints?: Array\n\n /**\n * Passed to the urlBuilder function\n */\n options?: OptionsType\n}\n\n/**\n * Use this hook to generate gatsby-plugin-image data in the browser.\n */\nexport function getImageData({\n baseUrl,\n urlBuilder,\n sourceWidth,\n sourceHeight,\n pluginName = `getImageData`,\n formats = [`auto`],\n breakpoints,\n options,\n ...props\n}: IGetImageDataArgs): IGatsbyImageData {\n if (\n !breakpoints?.length &&\n (props.layout === `fullWidth` || (props.layout as string) === `FULL_WIDTH`)\n ) {\n breakpoints = EVERY_BREAKPOINT\n }\n const generateImageSource = (\n baseUrl: string,\n width: number,\n height?: number,\n format?: ImageFormat\n ): IImage => {\n return {\n width,\n height,\n format,\n src: urlBuilder({ baseUrl, width, height, options, format }),\n }\n }\n\n const sourceMetadata: IGatsbyImageHelperArgs[\"sourceMetadata\"] = {\n width: sourceWidth,\n height: sourceHeight,\n format: `auto`,\n }\n\n const args: IGatsbyImageHelperArgs = {\n ...props,\n pluginName,\n generateImageSource,\n filename: baseUrl,\n formats,\n breakpoints,\n sourceMetadata,\n }\n return generateImageData(args)\n}\n\nexport function getMainProps(\n isLoading: boolean,\n isLoaded: boolean,\n images: IGatsbyImageData[\"images\"],\n loading?: \"eager\" | \"lazy\",\n style: CSSProperties = {}\n): Partial {\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n transform: `translateZ(0)`,\n transition: `opacity 250ms linear`,\n width: `100%`,\n willChange: `opacity`,\n ...style,\n }\n }\n\n const result = {\n ...images,\n loading,\n shouldLoad: isLoading,\n \"data-main-image\": ``,\n style: {\n ...style,\n opacity: isLoaded ? 1 : 0,\n },\n }\n\n return result\n}\n\nexport type PlaceholderImageAttrs = ImgHTMLAttributes &\n Pick & {\n \"data-placeholder-image\"?: string\n }\n\nexport function getPlaceholderProps(\n placeholder: PlaceholderImageAttrs | undefined,\n isLoaded: boolean,\n layout: Layout,\n width?: number,\n height?: number,\n backgroundColor?: string,\n objectFit?: CSSProperties[\"objectFit\"],\n objectPosition?: CSSProperties[\"objectPosition\"]\n): PlaceholderImageAttrs {\n const wrapperStyle: CSSProperties = {}\n\n if (backgroundColor) {\n wrapperStyle.backgroundColor = backgroundColor\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n wrapperStyle.backgroundColor = backgroundColor\n wrapperStyle.position = `relative`\n } else if (layout === `constrained`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n } else if (layout === `fullWidth`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n }\n }\n\n if (objectFit) {\n wrapperStyle.objectFit = objectFit\n }\n\n if (objectPosition) {\n wrapperStyle.objectPosition = objectPosition\n }\n const result: PlaceholderImageAttrs = {\n ...placeholder,\n \"aria-hidden\": true,\n \"data-placeholder-image\": ``,\n style: {\n opacity: isLoaded ? 0 : 1,\n transition: `opacity 500ms linear`,\n ...wrapperStyle,\n },\n }\n\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n result.style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n width: `100%`,\n }\n }\n\n return result\n}\n\nexport interface IArtDirectedImage {\n media: string\n image: IGatsbyImageData\n}\n\n/**\n * Generate a Gatsby image data object with multiple, art-directed images that display at different\n * resolutions.\n *\n * @param defaultImage The image displayed when no media query matches.\n * It is also used for all other settings applied to the image, such as width, height and layout.\n * You should pass a className to the component with media queries to adjust the size of the container,\n * as this cannot be adjusted automatically.\n * @param artDirected Array of objects which each contains a `media` string which is a media query\n * such as `(min-width: 320px)`, and the image object to use when that query matches.\n */\nexport function withArtDirection(\n defaultImage: IGatsbyImageData,\n artDirected: Array\n): IGatsbyImageData {\n const { images, placeholder, ...props } = defaultImage\n const output: IGatsbyImageData = {\n ...props,\n images: {\n ...images,\n sources: [],\n },\n placeholder: placeholder && {\n ...placeholder,\n sources: [],\n },\n }\n\n artDirected.forEach(({ media, image }) => {\n if (!media) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(\n \"[gatsby-plugin-image] All art-directed images passed to must have a value set for `media`. Skipping.\"\n )\n }\n return\n }\n\n if (\n image.layout !== defaultImage.layout &&\n process.env.NODE_ENV === `development`\n ) {\n console.warn(\n `[gatsby-plugin-image] Mismatched image layout: expected \"${defaultImage.layout}\" but received \"${image.layout}\". All art-directed images use the same layout as the default image`\n )\n }\n\n output.images.sources.push(\n ...image.images.sources.map(source => {\n return { ...source, media }\n }),\n {\n media,\n srcSet: image.images.fallback.srcSet,\n }\n )\n\n if (!output.placeholder) {\n return\n }\n\n output.placeholder.sources.push({\n media,\n srcSet: image.placeholder.fallback,\n })\n })\n output.images.sources.push(...images.sources)\n if (placeholder?.sources) {\n output.placeholder?.sources.push(...placeholder.sources)\n }\n return output\n}\n","import React, { Fragment, FunctionComponent, PropsWithChildren } from \"react\"\nimport terserMacro from \"../../macros/terser.macro\"\nimport { Layout } from \"../image-utils\"\n\nexport interface ILayoutWrapperProps {\n layout: Layout\n width: number\n height: number\n}\n\nconst NativeScriptLoading: FunctionComponent = () => (\n \n)\n\nexport function getSizer(\n layout: Layout,\n width: number,\n height: number\n): string {\n let sizer = ``\n if (layout === `fullWidth`) {\n sizer = `
`\n }\n\n if (layout === `constrained`) {\n sizer = `
\"\"
`\n }\n\n return sizer\n}\n\nconst Sizer: FunctionComponent = function Sizer({\n layout,\n width,\n height,\n}) {\n if (layout === `fullWidth`) {\n return (\n
\n )\n }\n\n if (layout === `constrained`) {\n return (\n
\n \n
\n )\n }\n\n return null\n}\n\nexport const LayoutWrapper: FunctionComponent<\n PropsWithChildren\n> = function LayoutWrapper({ children, ...props }) {\n return (\n \n \n {children}\n\n {SERVER ? : null}\n \n )\n}\n","import React, { FunctionComponent, ImgHTMLAttributes } from \"react\"\nimport * as PropTypes from \"prop-types\"\n\nexport interface IResponsiveImageProps {\n sizes?: string\n srcSet: string\n}\n\nexport type SourceProps = IResponsiveImageProps &\n (\n | {\n media: string\n type?: string\n }\n | {\n media?: string\n type: string\n }\n )\n\ntype FallbackProps = { src: string } & Partial\n\ntype ImageProps = ImgHTMLAttributes & {\n src: string\n alt: string\n shouldLoad: boolean\n}\n\nexport type PictureProps = ImgHTMLAttributes & {\n fallback?: FallbackProps\n sources?: Array\n alt: string\n shouldLoad?: boolean\n}\n\nconst Image: FunctionComponent = function Image({\n src,\n srcSet,\n loading,\n alt = ``,\n shouldLoad,\n ...props\n}) {\n return (\n \n )\n}\n\nexport const Picture: React.FC = function Picture({\n fallback,\n sources = [],\n shouldLoad = true,\n ...props\n}) {\n const sizes = props.sizes || fallback?.sizes\n const fallbackImage = (\n \n )\n\n if (!sources.length) {\n return fallbackImage\n }\n\n return (\n \n {sources.map(({ media, srcSet, type }) => (\n \n ))}\n {fallbackImage}\n \n )\n}\n\nImage.propTypes = {\n src: PropTypes.string.isRequired,\n alt: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string,\n shouldLoad: PropTypes.bool,\n}\n\nPicture.displayName = `Picture`\nPicture.propTypes = {\n alt: PropTypes.string.isRequired,\n shouldLoad: PropTypes.bool,\n fallback: PropTypes.exact({\n src: PropTypes.string.isRequired,\n srcSet: PropTypes.string,\n sizes: PropTypes.string,\n }),\n sources: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.exact({\n media: PropTypes.string.isRequired,\n type: PropTypes.string,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n PropTypes.exact({\n media: PropTypes.string,\n type: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n ])\n ),\n}\n","import React, { FunctionComponent, ImgHTMLAttributes } from \"react\"\nimport * as PropTypes from \"prop-types\"\nimport { Picture, SourceProps } from \"./picture\"\n\nexport type PlaceholderProps = ImgHTMLAttributes & {\n fallback?: string\n sources?: Array\n}\n\nexport const Placeholder: FunctionComponent =\n function Placeholder({ fallback, ...props }) {\n if (fallback) {\n return (\n \n )\n } else {\n return
\n }\n }\n\nPlaceholder.displayName = `Placeholder`\nPlaceholder.propTypes = {\n fallback: PropTypes.string,\n sources: Picture.propTypes?.sources,\n alt: function (props, propName, componentName): Error | null {\n if (!props[propName]) {\n return null\n }\n\n return new Error(\n `Invalid prop \\`${propName}\\` supplied to \\`${componentName}\\`. Validation failed.`\n )\n },\n}\n","import React from \"react\"\nimport { Picture, PictureProps } from \"./picture\"\n\nexport type MainImageProps = PictureProps\n\nexport const MainImage: React.FC = function MainImage(props) {\n return (\n <>\n \n \n \n )\n}\n\nMainImage.displayName = `MainImage`\nMainImage.propTypes = Picture.propTypes\n","import React from \"react\"\nimport { getWrapperProps, getMainProps, getPlaceholderProps } from \"./hooks\"\nimport { Placeholder } from \"./placeholder\"\nimport { MainImage, MainImageProps } from \"./main-image\"\nimport { LayoutWrapper } from \"./layout-wrapper\"\nimport PropTypes from \"prop-types\"\nimport type { FunctionComponent, WeakValidationMap } from \"react\"\nimport type { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\n\nconst removeNewLines = (str: string): string => str.replace(/\\n/g, ``)\n\nexport const GatsbyImage: FunctionComponent =\n function GatsbyImage({\n as = `div`,\n className,\n class: preactClass,\n style,\n image,\n loading = `lazy`,\n imgClassName,\n imgStyle,\n backgroundColor,\n objectFit,\n objectPosition,\n ...props\n }) {\n if (!image) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n return null\n }\n\n if (preactClass) {\n className = preactClass\n }\n\n imgStyle = {\n objectFit,\n objectPosition,\n backgroundColor,\n ...imgStyle,\n }\n\n const {\n width,\n height,\n layout,\n images,\n placeholder,\n backgroundColor: placeholderBackgroundColor,\n } = image\n\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n\n const cleanedImages: IGatsbyImageData[\"images\"] = {\n fallback: undefined,\n sources: [],\n }\n if (images.fallback) {\n cleanedImages.fallback = {\n ...images.fallback,\n srcSet: images.fallback.srcSet\n ? removeNewLines(images.fallback.srcSet)\n : undefined,\n }\n }\n\n if (images.sources) {\n cleanedImages.sources = images.sources.map(source => {\n return {\n ...source,\n srcSet: removeNewLines(source.srcSet),\n }\n })\n }\n\n return React.createElement(\n as,\n {\n ...wrapperProps,\n style: {\n ...wStyle,\n ...style,\n backgroundColor,\n },\n className: `${wClass}${className ? ` ${className}` : ``}`,\n },\n \n \n\n )}\n // When eager is set we want to start the isLoading state on true (we want to load the img without react)\n {...getMainProps(\n loading === `eager`,\n false,\n cleanedImages,\n loading,\n imgStyle\n )}\n />\n \n )\n }\n\nexport const altValidator: PropTypes.Validator = (\n props: GatsbyImageProps,\n propName,\n componentName,\n ...rest\n): Error | undefined => {\n if (!props.alt && props.alt !== ``) {\n return new Error(\n `The \"alt\" prop is required in ${componentName}. If the image is purely presentational then pass an empty string: e.g. alt=\"\". Learn more: https://a11y-style-guide.com/style-guide/section-media.html`\n )\n }\n\n return PropTypes.string(props, propName, componentName, ...rest)\n}\n\nexport const propTypes = {\n image: PropTypes.object.isRequired,\n alt: altValidator,\n} as WeakValidationMap\n","import {\n createElement,\n memo,\n useMemo,\n useEffect,\n useLayoutEffect,\n useRef,\n} from \"react\"\nimport {\n getWrapperProps,\n gatsbyImageIsInstalled,\n hasNativeLazyLoadSupport,\n} from \"./hooks\"\nimport { getSizer } from \"./layout-wrapper\"\nimport { propTypes } from \"./gatsby-image.server\"\nimport type {\n FC,\n ElementType,\n FunctionComponent,\n ImgHTMLAttributes,\n CSSProperties,\n ReactEventHandler,\n} from \"react\"\nimport type { renderImageToString } from \"./lazy-hydrate\"\nimport type { PlaceholderProps } from \"./placeholder\"\nimport type { MainImageProps } from \"./main-image\"\nimport type { Layout } from \"../image-utils\"\n\nconst imageCache = new Set()\nlet renderImageToStringPromise\nlet renderImage: typeof renderImageToString | undefined\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport interface GatsbyImageProps\n extends Omit<\n ImgHTMLAttributes,\n \"placeholder\" | \"onLoad\" | \"src\" | \"srcSet\" | \"width\" | \"height\"\n > {\n alt: string\n as?: ElementType\n className?: string\n class?: string\n imgClassName?: string\n image: IGatsbyImageData\n imgStyle?: CSSProperties\n backgroundColor?: string\n objectFit?: CSSProperties[\"objectFit\"]\n objectPosition?: CSSProperties[\"objectPosition\"]\n onLoad?: (props: { wasCached: boolean }) => void\n onError?: ReactEventHandler\n onStartLoad?: (props: { wasCached: boolean }) => void\n}\n\nexport interface IGatsbyImageData {\n layout: Layout\n width: number\n height: number\n backgroundColor?: string\n images: Pick\n placeholder?: Pick\n}\n\nconst GatsbyImageHydrator: FC = function GatsbyImageHydrator({\n as = `div`,\n image,\n style,\n backgroundColor,\n className,\n class: preactClass,\n onStartLoad,\n onLoad,\n onError,\n ...props\n}) {\n const { width, height, layout } = image\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n const root = useRef()\n const cacheKey = useMemo(() => JSON.stringify(image.images), [image.images])\n\n // Preact uses class instead of className so we need to check for both\n if (preactClass) {\n className = preactClass\n }\n\n const sizer = getSizer(layout, width, height)\n\n useEffect(() => {\n if (!renderImageToStringPromise) {\n renderImageToStringPromise = import(`./lazy-hydrate`).then(\n ({ renderImageToString, swapPlaceholderImage }) => {\n renderImage = renderImageToString\n\n return {\n renderImageToString,\n swapPlaceholderImage,\n }\n }\n )\n }\n\n // The plugin image component is a bit special where if it's server-side rendered, we add extra script tags to support lazy-loading without\n // In this case we stop hydration but fire the correct events.\n const ssrImage = root.current.querySelector(\n `[data-gatsby-image-ssr]`\n ) as HTMLImageElement\n if (ssrImage && hasNativeLazyLoadSupport()) {\n if (ssrImage.complete) {\n // Trigger onStartload and onLoad events\n onStartLoad?.({\n wasCached: true,\n })\n onLoad?.({\n wasCached: true,\n })\n\n // remove ssr key for state updates but add delay to not fight with native code snippt of gatsby-ssr\n setTimeout(() => {\n ssrImage.removeAttribute(`data-gatsby-image-ssr`)\n }, 0)\n } else {\n onStartLoad?.({\n wasCached: true,\n })\n\n ssrImage.addEventListener(`load`, function onLoadListener() {\n ssrImage.removeEventListener(`load`, onLoadListener)\n\n onLoad?.({\n wasCached: true,\n })\n // remove ssr key for state updates but add delay to not fight with native code snippt of gatsby-ssr\n setTimeout(() => {\n ssrImage.removeAttribute(`data-gatsby-image-ssr`)\n }, 0)\n })\n }\n\n imageCache.add(cacheKey)\n\n return\n }\n\n if (renderImage && imageCache.has(cacheKey)) {\n return\n }\n\n let animationFrame\n let cleanupCallback\n renderImageToStringPromise.then(\n ({ renderImageToString, swapPlaceholderImage }) => {\n if (!root.current) {\n return\n }\n\n root.current.innerHTML = renderImageToString({\n isLoading: true,\n isLoaded: imageCache.has(cacheKey),\n image,\n ...props,\n })\n\n if (!imageCache.has(cacheKey)) {\n animationFrame = requestAnimationFrame(() => {\n if (root.current) {\n cleanupCallback = swapPlaceholderImage(\n root.current,\n cacheKey,\n imageCache,\n style,\n onStartLoad,\n onLoad,\n onError\n )\n }\n })\n }\n }\n )\n\n // eslint-disable-next-line consistent-return\n return (): void => {\n if (animationFrame) {\n cancelAnimationFrame(animationFrame)\n }\n if (cleanupCallback) {\n cleanupCallback()\n }\n }\n }, [image])\n\n // useLayoutEffect is ran before React commits to the DOM. This allows us to make sure our HTML is using our cached image version\n useLayoutEffect(() => {\n if (imageCache.has(cacheKey) && renderImage) {\n root.current.innerHTML = renderImage({\n isLoading: imageCache.has(cacheKey),\n isLoaded: imageCache.has(cacheKey),\n image,\n ...props,\n })\n\n // Trigger onStartload and onLoad events\n onStartLoad?.({\n wasCached: true,\n })\n onLoad?.({\n wasCached: true,\n })\n }\n }, [image])\n\n // By keeping all props equal React will keep the component in the DOM\n return createElement(as, {\n ...wrapperProps,\n style: {\n ...wStyle,\n ...style,\n backgroundColor,\n },\n className: `${wClass}${className ? ` ${className}` : ``}`,\n ref: root,\n dangerouslySetInnerHTML: {\n __html: sizer,\n },\n suppressHydrationWarning: true,\n })\n}\n\nexport const GatsbyImage: FunctionComponent = memo(\n function GatsbyImage(props) {\n if (!props.image) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n }\n\n return null\n }\n\n if (!gatsbyImageIsInstalled() && process.env.NODE_ENV === `development`) {\n console.warn(\n `[gatsby-plugin-image] You're missing out on some cool performance features. Please add \"gatsby-plugin-image\" to your gatsby-config.js`\n )\n }\n\n return createElement(GatsbyImageHydrator, props)\n }\n)\n\nGatsbyImage.propTypes = propTypes\nGatsbyImage.displayName = `GatsbyImage`\n","import React, { FunctionComponent, ReactElement } from \"react\"\nimport {\n altValidator,\n GatsbyImage as GatsbyImageServer,\n} from \"./gatsby-image.server\"\nimport { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\nimport PropTypes from \"prop-types\"\nimport { ISharpGatsbyImageArgs } from \"../image-utils\"\n\nexport interface IStaticImageProps\n extends Omit,\n Omit {\n src: string\n filename?: string\n}\n\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nexport function _getStaticImage(\n GatsbyImage: FunctionComponent\n): React.FC {\n return function StaticImage({\n src,\n __imageData: imageData,\n __error,\n // We extract these because they're not meant to be passed-down to GatsbyImage\n /* eslint-disable @typescript-eslint/no-unused-vars */\n width,\n height,\n aspectRatio,\n tracedSVGOptions,\n placeholder,\n formats,\n quality,\n transformOptions,\n jpgOptions,\n pngOptions,\n webpOptions,\n avifOptions,\n blurredOptions,\n breakpoints,\n outputPixelDensities,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...props\n }): ReactElement {\n if (__error) {\n console.warn(__error)\n }\n\n if (imageData) {\n return \n }\n console.warn(`Image not loaded`, src)\n if (!__error && process.env.NODE_ENV === `development`) {\n console.warn(\n `Please ensure that \"gatsby-plugin-image\" is included in the plugins array in gatsby-config.js, and that your version of gatsby is at least 2.24.78`\n )\n }\n return null\n }\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageServer)\n\nconst checkDimensionProps: PropTypes.Validator = (\n props: IStaticImageProps & IPrivateProps,\n propName: keyof IStaticImageProps & IPrivateProps,\n ...rest\n) => {\n if (\n props.layout === `fullWidth` &&\n (propName === `width` || propName === `height`) &&\n props[propName]\n ) {\n return new Error(\n `\"${propName}\" ${props[propName]} may not be passed when layout is fullWidth.`\n )\n }\n return PropTypes.number(props, propName, ...rest)\n}\n\nconst validLayouts = new Set([`fixed`, `fullWidth`, `constrained`])\n\nexport const propTypes = {\n src: PropTypes.string.isRequired,\n alt: altValidator,\n width: checkDimensionProps,\n height: checkDimensionProps,\n sizes: PropTypes.string,\n layout: (props: IStaticImageProps & IPrivateProps): Error | undefined => {\n if (props.layout === undefined) {\n return undefined\n }\n if (validLayouts.has(props.layout)) {\n return undefined\n }\n\n return new Error(\n `Invalid value ${props.layout}\" provided for prop \"layout\". Defaulting to \"constrained\". Valid values are \"fixed\", \"fullWidth\" or \"constrained\".`\n )\n },\n}\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","import {\n GatsbyImage as GatsbyImageBrowser,\n IGatsbyImageData,\n} from \"./gatsby-image.browser\"\nimport React from \"react\"\nimport {\n _getStaticImage,\n propTypes,\n IStaticImageProps,\n} from \"./static-image.server\"\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageBrowser)\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","'use strict';\n\nconst UPPERCASE = /[\\p{Lu}]/u;\nconst LOWERCASE = /[\\p{Ll}]/u;\nconst LEADING_CAPITAL = /^[\\p{Lu}](?![\\p{Lu}])/gu;\nconst IDENTIFIER = /([\\p{Alpha}\\p{N}_]|$)/u;\nconst SEPARATORS = /[_.\\- ]+/;\n\nconst LEADING_SEPARATORS = new RegExp('^' + SEPARATORS.source);\nconst SEPARATORS_AND_IDENTIFIER = new RegExp(SEPARATORS.source + IDENTIFIER.source, 'gu');\nconst NUMBERS_AND_IDENTIFIER = new RegExp('\\\\d+' + IDENTIFIER.source, 'gu');\n\nconst preserveCamelCase = (string, toLowerCase, toUpperCase) => {\n\tlet isLastCharLower = false;\n\tlet isLastCharUpper = false;\n\tlet isLastLastCharUpper = false;\n\n\tfor (let i = 0; i < string.length; i++) {\n\t\tconst character = string[i];\n\n\t\tif (isLastCharLower && UPPERCASE.test(character)) {\n\t\t\tstring = string.slice(0, i) + '-' + string.slice(i);\n\t\t\tisLastCharLower = false;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = true;\n\t\t\ti++;\n\t\t} else if (isLastCharUpper && isLastLastCharUpper && LOWERCASE.test(character)) {\n\t\t\tstring = string.slice(0, i - 1) + '-' + string.slice(i - 1);\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = false;\n\t\t\tisLastCharLower = true;\n\t\t} else {\n\t\t\tisLastCharLower = toLowerCase(character) === character && toUpperCase(character) !== character;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = toUpperCase(character) === character && toLowerCase(character) !== character;\n\t\t}\n\t}\n\n\treturn string;\n};\n\nconst preserveConsecutiveUppercase = (input, toLowerCase) => {\n\tLEADING_CAPITAL.lastIndex = 0;\n\n\treturn input.replace(LEADING_CAPITAL, m1 => toLowerCase(m1));\n};\n\nconst postProcess = (input, toUpperCase) => {\n\tSEPARATORS_AND_IDENTIFIER.lastIndex = 0;\n\tNUMBERS_AND_IDENTIFIER.lastIndex = 0;\n\n\treturn input.replace(SEPARATORS_AND_IDENTIFIER, (_, identifier) => toUpperCase(identifier))\n\t\t.replace(NUMBERS_AND_IDENTIFIER, m => toUpperCase(m));\n};\n\nconst camelCase = (input, options) => {\n\tif (!(typeof input === 'string' || Array.isArray(input))) {\n\t\tthrow new TypeError('Expected the input to be `string | string[]`');\n\t}\n\n\toptions = {\n\t\tpascalCase: false,\n\t\tpreserveConsecutiveUppercase: false,\n\t\t...options\n\t};\n\n\tif (Array.isArray(input)) {\n\t\tinput = input.map(x => x.trim())\n\t\t\t.filter(x => x.length)\n\t\t\t.join('-');\n\t} else {\n\t\tinput = input.trim();\n\t}\n\n\tif (input.length === 0) {\n\t\treturn '';\n\t}\n\n\tconst toLowerCase = options.locale === false ?\n\t\tstring => string.toLowerCase() :\n\t\tstring => string.toLocaleLowerCase(options.locale);\n\tconst toUpperCase = options.locale === false ?\n\t\tstring => string.toUpperCase() :\n\t\tstring => string.toLocaleUpperCase(options.locale);\n\n\tif (input.length === 1) {\n\t\treturn options.pascalCase ? toUpperCase(input) : toLowerCase(input);\n\t}\n\n\tconst hasUpperCase = input !== toLowerCase(input);\n\n\tif (hasUpperCase) {\n\t\tinput = preserveCamelCase(input, toLowerCase, toUpperCase);\n\t}\n\n\tinput = input.replace(LEADING_SEPARATORS, '');\n\n\tif (options.preserveConsecutiveUppercase) {\n\t\tinput = preserveConsecutiveUppercase(input, toLowerCase);\n\t} else {\n\t\tinput = toLowerCase(input);\n\t}\n\n\tif (options.pascalCase) {\n\t\tinput = toUpperCase(input.charAt(0)) + input.slice(1);\n\t}\n\n\treturn postProcess(input, toUpperCase);\n};\n\nmodule.exports = camelCase;\n// TODO: Remove this for the next major release\nmodule.exports.default = camelCase;\n"],"names":["W","hasNativeLazyLoadSupport","HTMLImageElement","prototype","z","e","t","a","i","s","width","height","className","style","P","h","loading","shouldLoad","opacity","A","r","n","o","l","backgroundColor","position","top","left","bottom","right","objectFit","objectPosition","d","transition","H","F","_ref5","layout","paddingTop","maxWidth","display","alt","role","src","G","children","u","V","B","U","srcSet","decoding","Y","fallback","sources","sizes","length","map","_ref6","media","type","key","X","propTypes","isRequired","displayName","J","Z","Error","K","Q","ee","te","replace","ae","_len","arguments","Array","_key","c","apply","concat","ie","image","se","re","ne","Set","oe","le","de","as","class","g","onStartLoad","p","onLoad","m","onError","f","w","y","b","v","E","k","S","M","N","$","JSON","stringify","images","I","then","_ref7","renderImageToString","swapPlaceholderImage","current","querySelector","complete","wasCached","setTimeout","removeAttribute","addEventListener","removeEventListener","add","has","_ref8","innerHTML","isLoading","isLoaded","requestAnimationFrame","cancelAnimationFrame","ref","dangerouslySetInnerHTML","__html","suppressHydrationWarning","ce","he","ue","__imageData","__error","console","warn","ge","imgClassName","imgStyle","placeholder","pe","_len2","_key2","me","fe","we","UPPERCASE","LOWERCASE","LEADING_CAPITAL","IDENTIFIER","SEPARATORS","LEADING_SEPARATORS","RegExp","source","SEPARATORS_AND_IDENTIFIER","NUMBERS_AND_IDENTIFIER","camelCase","input","options","isArray","TypeError","pascalCase","preserveConsecutiveUppercase","x","trim","filter","join","toLowerCase","locale","string","toLocaleLowerCase","toUpperCase","toLocaleUpperCase","preserveCamelCase","isLastCharLower","isLastCharUpper","isLastLastCharUpper","character","test","slice","lastIndex","m1","charAt","postProcess","_","identifier","module","exports"],"sourceRoot":""} \ No newline at end of file diff --git a/chunk-map.json b/chunk-map.json index 552f83f..3c5fc27 100644 --- a/chunk-map.json +++ b/chunk-map.json @@ -1 +1 @@ -{"app":["/app-4e1d8fdb385a026c30df.js"],"component---src-pages-404-jsx":["/component---src-pages-404-jsx-8f338da35557cc3dd150.js"],"component---src-pages-about-jsx":["/component---src-pages-about-jsx-2422223ec1ece726fd35.js"],"component---src-pages-blog-blog-post-jsx":["/component---src-pages-blog-blog-post-jsx-336e3b10d76acbdfc606.js"],"component---src-pages-blog-jsx":["/component---src-pages-blog-jsx-05e3c84cf6be8f12af49.js"],"component---src-pages-curriculum-vitae-jsx":["/component---src-pages-curriculum-vitae-jsx-e242e7a981f4c5c9cbca.js"],"component---src-pages-cv-jsx":["/component---src-pages-cv-jsx-83a04a406da6807f0449.js"],"component---src-pages-index-jsx":["/component---src-pages-index-jsx-f25f74efa582a9e64cfb.js"],"component---src-pages-portfolio-fibonacci-assistant-telegram-bot-jsx":["/component---src-pages-portfolio-fibonacci-assistant-telegram-bot-jsx-96a9f3a372639ccb9fdc.js"],"component---src-pages-portfolio-grabcoinclub-nft-jsx":["/component---src-pages-portfolio-grabcoinclub-nft-jsx-a83f521c44c0a5fa8968.js"],"component---src-pages-portfolio-jsx":["/component---src-pages-portfolio-jsx-de70e7a75fce95149974.js"],"component---src-pages-portfolio-poolex-ai-jsx":["/component---src-pages-portfolio-poolex-ai-jsx-161dd7d23320749b17f5.js"],"component---src-pages-portfolio-roborovski-nft-jsx":["/component---src-pages-portfolio-roborovski-nft-jsx-d870e014c24b2f84bdbe.js"],"component---src-pages-portfolio-uls-token-jsx":["/component---src-pages-portfolio-uls-token-jsx-9ef10f7f71133f8742da.js"],"component---src-pages-portfolio-world-millionaire-challenge-jsx":["/component---src-pages-portfolio-world-millionaire-challenge-jsx-4ca7085d59ae54958b53.js"],"component---src-pages-privacy-jsx":["/component---src-pages-privacy-jsx-007eb7fbded158316edf.js"],"component---src-pages-products-hotcoin-database-jsx":["/component---src-pages-products-hotcoin-database-jsx-8f330ba0e34ed5af0ac0.js"],"component---src-pages-products-jsx":["/component---src-pages-products-jsx-d84839a11953f029e6fa.js"],"component---src-pages-products-notcoin-database-jsx":["/component---src-pages-products-notcoin-database-jsx-6942f32a38f26a8abbe8.js"],"component---src-pages-projects-jsx":["/component---src-pages-projects-jsx-d341f19cf9f37dab020a.js"],"component---src-pages-services-forks-jsx":["/component---src-pages-services-forks-jsx-071a6b3ca56a21d51cd6.js"],"component---src-pages-services-jsx":["/component---src-pages-services-jsx-1218b41e8fda3e49c2d0.js"],"component---src-pages-services-telegram-bots-jsx":["/component---src-pages-services-telegram-bots-jsx-81caf17fb32b15d09efb.js"],"component---src-pages-terms-jsx":["/component---src-pages-terms-jsx-41a2a507463ee6263e44.js"]} \ No newline at end of file +{"app":["/app-edcd9978be5b7bd7cdfb.js"],"component---src-pages-404-jsx":["/component---src-pages-404-jsx-8f338da35557cc3dd150.js"],"component---src-pages-about-jsx":["/component---src-pages-about-jsx-2422223ec1ece726fd35.js"],"component---src-pages-blog-blog-post-jsx":["/component---src-pages-blog-blog-post-jsx-872d5fd392edfc490c94.js"],"component---src-pages-blog-jsx":["/component---src-pages-blog-jsx-05e3c84cf6be8f12af49.js"],"component---src-pages-curriculum-vitae-jsx":["/component---src-pages-curriculum-vitae-jsx-e242e7a981f4c5c9cbca.js"],"component---src-pages-cv-jsx":["/component---src-pages-cv-jsx-83a04a406da6807f0449.js"],"component---src-pages-index-jsx":["/component---src-pages-index-jsx-c574676565ac4f956b75.js"],"component---src-pages-portfolio-fibonacci-assistant-telegram-bot-jsx":["/component---src-pages-portfolio-fibonacci-assistant-telegram-bot-jsx-96a9f3a372639ccb9fdc.js"],"component---src-pages-portfolio-grabcoinclub-nft-jsx":["/component---src-pages-portfolio-grabcoinclub-nft-jsx-a83f521c44c0a5fa8968.js"],"component---src-pages-portfolio-jsx":["/component---src-pages-portfolio-jsx-b41f52f683896ab46d88.js"],"component---src-pages-portfolio-poolex-ai-jsx":["/component---src-pages-portfolio-poolex-ai-jsx-161dd7d23320749b17f5.js"],"component---src-pages-portfolio-roborovski-nft-jsx":["/component---src-pages-portfolio-roborovski-nft-jsx-d870e014c24b2f84bdbe.js"],"component---src-pages-portfolio-uls-token-jsx":["/component---src-pages-portfolio-uls-token-jsx-9ef10f7f71133f8742da.js"],"component---src-pages-portfolio-world-millionaire-challenge-jsx":["/component---src-pages-portfolio-world-millionaire-challenge-jsx-4ca7085d59ae54958b53.js"],"component---src-pages-privacy-jsx":["/component---src-pages-privacy-jsx-007eb7fbded158316edf.js"],"component---src-pages-products-jsx":["/component---src-pages-products-jsx-d84839a11953f029e6fa.js"],"component---src-pages-products-notcoin-database-jsx":["/component---src-pages-products-notcoin-database-jsx-55d91539303f8c546ffd.js"],"component---src-pages-projects-jsx":["/component---src-pages-projects-jsx-d341f19cf9f37dab020a.js"],"component---src-pages-services-forks-jsx":["/component---src-pages-services-forks-jsx-071a6b3ca56a21d51cd6.js"],"component---src-pages-services-jsx":["/component---src-pages-services-jsx-1218b41e8fda3e49c2d0.js"],"component---src-pages-services-telegram-bots-jsx":["/component---src-pages-services-telegram-bots-jsx-81caf17fb32b15d09efb.js"],"component---src-pages-terms-jsx":["/component---src-pages-terms-jsx-41a2a507463ee6263e44.js"]} \ No newline at end of file diff --git a/component---src-pages-blog-blog-post-jsx-336e3b10d76acbdfc606.js b/component---src-pages-blog-blog-post-jsx-336e3b10d76acbdfc606.js deleted file mode 100644 index d319997..0000000 --- a/component---src-pages-blog-blog-post-jsx-336e3b10d76acbdfc606.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkivannikov_pro_website=self.webpackChunkivannikov_pro_website||[]).push([[81],{2099:function(e,t,l){l.d(t,{Xh:function(){return m},zI:function(){return r}});var n=l(6540),a=l(6711),c=l(2635);function i(e){let{className:t,linkTitle:l,linkTo:i}=e,s="";return t&&(s+=" "+t),n.createElement(a.N,{className:s,to:i},n.createElement(c.A6,null),n.createElement("span",null,l))}function s(e){let{className:t,linkTitle:l,linkTo:i}=e,s="";return t&&(s+=" "+t),n.createElement(a.N,{className:s,to:i},n.createElement("span",null,l),n.createElement(c.fl,null))}function r(e){let{className:t,linkTitle:l,linkTo:a}=e,c="back second-page__nav-link";return t&&(c+=" "+t),n.createElement(i,{className:c,linkTitle:l,linkTo:a})}function m(e){let{className:t,previous:l={className:"",title:"",linkTitle:"",linkTo:""},next:a={className:"",title:"",linkTitle:"",linkTo:""}}=e,c="";return t&&" "+t,n.createElement("div",{className:"second-page__nav"},n.createElement("div",{className:"second-page__nav-left second-page__nav-item"},n.createElement("span",{className:"second-page__nav-title"},a.title),n.createElement("div",{className:"second-page__nav-link"},n.createElement(i,{className:l.className,linkTitle:l.linkTitle,linkTo:l.linkTo}))),n.createElement("div",{className:"second-page__nav-right second-page__nav-item"},n.createElement("span",{className:"second-page__nav-title"},a.title),n.createElement("div",{className:"second-page__nav-link"},n.createElement(s,{className:a.className,linkTitle:a.linkTitle,linkTo:a.linkTo}))))}},3774:function(e,t,l){l.r(t),l.d(t,{default:function(){return o}});var n=l(6540),a=l(2389),c=l(6056),i=l(2099),s=l.p+"static/blog-d9af30d30e17317df5ec0e8b08fc3934.jpg",r=l.p+"static/blog@2x-59d7516dab4fa8d1dabe707ed18fe69e.jpg",m=l.p+"static/blog2-abf5b25eeb3ce5de23b3596f8619efdb.jpg";function o(){const{t:e}=(0,a.Bd)("blog-post");return n.createElement(c.A,{title:e("Blog Post"),description:e("Blog Post"),keywords:e("keywordsList")},n.createElement("div",{id:"about"},n.createElement("main",{className:"main"},n.createElement("section",{className:"section-blog"},n.createElement("div",{className:"container"},n.createElement("div",{className:"row"},n.createElement("div",{className:"col-lg-2"},n.createElement(i.zI,{linkTitle:e("To Blog Page"),linkTo:"/blog/"})),n.createElement("div",{className:"col-12 col-lg-8 content"},n.createElement("figure",null,n.createElement("img",{alt:"",title:"",src:s,srcSet:r}),n.createElement("div",{className:"round round-1"})),n.createElement("h1",{className:"title"},"Title"),n.createElement("h2",null,"Sub Title"),n.createElement("p",null,"Text"),n.createElement("p",null,"Text"),n.createElement("p",null,"Text"),n.createElement("h2",null,"Sub Title"),n.createElement("p",null,"Text"),n.createElement("p",null,"Text"),n.createElement("figure",null,n.createElement("img",{alt:"",title:"",src:m}),n.createElement("div",{className:"round round-2"})),n.createElement("p",null,"Text"),n.createElement("p",null,"Text"),n.createElement(i.Xh,{previous:{title:"Previous Title",linkTitle:e("Previous post"),linkTo:"/blog/?/"},next:{title:"Next Title",linkTitle:e("Next post"),linkTo:"/blog/?/"}}))))))))}}}]); -//# sourceMappingURL=component---src-pages-blog-blog-post-jsx-336e3b10d76acbdfc606.js.map \ No newline at end of file diff --git a/component---src-pages-blog-blog-post-jsx-336e3b10d76acbdfc606.js.map b/component---src-pages-blog-blog-post-jsx-336e3b10d76acbdfc606.js.map deleted file mode 100644 index 67aeda6..0000000 --- a/component---src-pages-blog-blog-post-jsx-336e3b10d76acbdfc606.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"component---src-pages-blog-blog-post-jsx-336e3b10d76acbdfc606.js","mappings":"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","sources":["webpack://ivannikov.pro-website/./src/components/elements/NavSecondPage.jsx","webpack://ivannikov.pro-website/./src/assets/images/blog.jpg","webpack://ivannikov.pro-website/./src/assets/images/blog@2x.jpg","webpack://ivannikov.pro-website/./src/assets/images/blog2.jpg","webpack://ivannikov.pro-website/./src/pages/blog/blog-post.jsx"],"sourcesContent":["import \"./NavSecondPage.scss\";\n\nimport React from \"react\";\nimport { Link } from \"../Link\";\nimport { ArrowLeftIcon, ArrowRightIcon } from \"../Svg\";\n\n\n\nexport function NavSecondPagePreviousTo({ className, linkTitle, linkTo, }) {\n let clsName = \"\";\n if (className) clsName += ` ${className}`;\n return (\n \n \n {linkTitle}\n \n );\n};\n\n\nexport function NavSecondPageNextTo({ className, linkTitle, linkTo, }) {\n let clsName = \"\";\n if (className) clsName += ` ${className}`;\n return (\n \n {linkTitle}\n \n \n );\n};\n\n\nexport function NavSecondPageBackTo({ className, linkTitle, linkTo, }) {\n let clsName = \"back second-page__nav-link\";\n if (className) clsName += ` ${className}`;\n return (\n \n );\n};\n\n\nexport function NavSecondPagePreviousNext({\n className,\n previous = { className: \"\", title: \"\", linkTitle: \"\", linkTo: \"\", },\n next = { className: \"\", title: \"\", linkTitle: \"\", linkTo: \"\", },\n}) {\n let clsName = \"\";\n if (className) clsName += ` ${className}`;\n return (\n
\n
\n {next.title}\n
\n \n
\n
\n\n
\n {next.title}\n
\n \n
\n
\n
\n );\n};\n","export default __webpack_public_path__ + \"static/blog-d9af30d30e17317df5ec0e8b08fc3934.jpg\";","export default __webpack_public_path__ + \"static/blog@2x-59d7516dab4fa8d1dabe707ed18fe69e.jpg\";","export default __webpack_public_path__ + \"static/blog2-abf5b25eeb3ce5de23b3596f8619efdb.jpg\";","import \"./index.scss\";\n\nimport React from \"react\";\n\nimport { useTranslation, } from \"react-i18next\";\nimport Page from \"../../components/Page\";\nimport { NavSecondPageBackTo, NavSecondPagePreviousNext } from \"../../components/elements/NavSecondPage\";\n\nimport ImageBlog from \"../../assets/images/blog.jpg\";\nimport ImageBlogX2 from \"../../assets/images/blog@2x.jpg\";\nimport ImageBlog2 from \"../../assets/images/blog2.jpg\";\n\n\n\nexport default function TermsPage() {\n const { t, } = useTranslation(\"blog-post\");\n\n return (\n \n
\n
\n
\n
\n
\n
\n \n
\n\n
\n
\n \n
\n
\n\n

Title

\n

Sub Title

\n

Text

\n

Text

\n

Text

\n\n

Sub Title

\n

Text

\n

Text

\n
\n \n
\n
\n

Text

\n

Text

\n\n \n
\n
\n
\n
\n
\n
\n \n );\n}\n"],"names":["NavSecondPagePreviousTo","_ref","className","linkTitle","linkTo","clsName","React","Link","to","ArrowLeftIcon","NavSecondPageNextTo","_ref2","ArrowRightIcon","NavSecondPageBackTo","_ref3","NavSecondPagePreviousNext","_ref4","previous","title","next","TermsPage","t","useTranslation","Page","description","keywords","id","alt","src","ImageBlog","srcSet","ImageBlogX2","ImageBlog2"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-blog-blog-post-jsx-872d5fd392edfc490c94.js b/component---src-pages-blog-blog-post-jsx-872d5fd392edfc490c94.js new file mode 100644 index 0000000..9125ca8 --- /dev/null +++ b/component---src-pages-blog-blog-post-jsx-872d5fd392edfc490c94.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkivannikov_pro_website=self.webpackChunkivannikov_pro_website||[]).push([[81],{5349:function(A,e,t){t.d(e,{$c:function(){return n},Lc:function(){return i},Sv:function(){return c},UA:function(){return l}});var a=t(6540);function l(A){let{className:e}=A,t="gradient-round gradient-round-1";return e&&(t+=" "+e),a.createElement("div",{className:t})}function n(A){let{className:e}=A,t="gradient-round gradient-round-2";return e&&(t+=" "+e),a.createElement("div",{className:t})}function c(A){let{className:e}=A,t="gradient-round gradient-round-blog-1";return e&&(t+=" "+e),a.createElement("div",{className:t})}function i(A){let{className:e}=A,t="gradient-round gradient-round-blog-2";return e&&(t+=" "+e),a.createElement("div",{className:t})}},2099:function(A,e,t){t.d(e,{Xh:function(){return r},zI:function(){return s}});var a=t(6540),l=t(6711),n=t(2635);function c(A){let{className:e,linkTitle:t,linkTo:c}=A,i="";return e&&(i+=" "+e),a.createElement(l.N,{className:i,to:c},a.createElement(n.A6,null),a.createElement("span",null,t))}function i(A){let{className:e,linkTitle:t,linkTo:c}=A,i="";return e&&(i+=" "+e),a.createElement(l.N,{className:i,to:c},a.createElement("span",null,t),a.createElement(n.fl,null))}function s(A){let{className:e,linkTitle:t,linkTo:l}=A,n="back second-page__nav-link";return e&&(n+=" "+e),a.createElement(c,{className:n,linkTitle:t,linkTo:l})}function r(A){let{className:e,previous:t={className:"",title:"",linkTitle:"",linkTo:""},next:l={className:"",title:"",linkTitle:"",linkTo:""}}=A,n="";return e&&" "+e,a.createElement("div",{className:"second-page__nav"},a.createElement("div",{className:"second-page__nav-left second-page__nav-item"},a.createElement("span",{className:"second-page__nav-title"},l.title),a.createElement("div",{className:"second-page__nav-link"},a.createElement(c,{className:t.className,linkTitle:t.linkTitle,linkTo:t.linkTo}))),a.createElement("div",{className:"second-page__nav-right second-page__nav-item"},a.createElement("span",{className:"second-page__nav-title"},l.title),a.createElement("div",{className:"second-page__nav-link"},a.createElement(i,{className:l.className,linkTitle:l.linkTitle,linkTo:l.linkTo}))))}},1771:function(A,e,t){t.r(e),t.d(e,{default:function(){return r}});var a=t(6540),l=(t(8865),t(2389)),n=t(6056),c=t(5349),i=t(2099),s=t(2532);function r(){const{t:A}=(0,l.Bd)("blog-post");return a.createElement(n.A,{title:A("Blog Post"),description:A("Blog Post"),keywords:A("keywordsList")},a.createElement("main",{id:"blog-post",className:"main"},a.createElement("section",{className:"section-blog"},a.createElement("div",{className:"container"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col-lg-2"},a.createElement(i.zI,{linkTitle:A("To Blog Page"),linkTo:"/blog/"})),a.createElement("div",{className:"col-12 col-lg-8 content"},a.createElement("figure",null,a.createElement(s.S,{alt:A("IVANNIKOV.PRO"),title:A("IVANNIKOV.PRO"),src:"../../assets/images/blog@2x.jpg",placeholder:"blurred",__imageData:t(4203)}),a.createElement(c.Sv,null)),a.createElement("h1",{className:"title"},"Title"),a.createElement("h2",null,"Sub Title"),a.createElement("p",null,"Text"),a.createElement("p",null,"Text"),a.createElement("p",null,"Text"),a.createElement("h2",null,"Sub Title"),a.createElement("p",null,"Text"),a.createElement("p",null,"Text"),a.createElement("figure",null,a.createElement(s.S,{alt:A("IVANNIKOV.PRO"),title:A("IVANNIKOV.PRO"),src:"../../assets/images/blog2.jpg",placeholder:"blurred",__imageData:t(299)}),a.createElement(c.Lc,null)),a.createElement("p",null,"Text"),a.createElement("p",null,"Text"),a.createElement(i.Xh,{previous:{title:"Previous Title",linkTitle:A("Previous post"),linkTo:"/blog/?/"},next:{title:"Next Title",linkTitle:A("Next post"),linkTo:"/blog/?/"}})))))))}},299:function(A){A.exports=JSON.parse('{"layout":"constrained","placeholder":{"fallback":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAIABQDASIAAhEBAxEB/8QAFwABAAMAAAAAAAAAAAAAAAAAAAMEBf/EABYBAQEBAAAAAAAAAAAAAAAAAAECBP/aAAwDAQACEAMQAAABzJBLArZ//8QAGBAAAgMAAAAAAAAAAAAAAAAAARECITH/2gAIAQEAAQUCE6YQz//EABYRAAMAAAAAAAAAAAAAAAAAAAABAv/aAAgBAwEBPwGaEj//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAVEAEBAAAAAAAAAAAAAAAAAAAQIf/aAAgBAQAGPwKv/8QAGBABAQEBAQAAAAAAAAAAAAAAAREhAEH/2gAIAQEAAT8h2ju28Ak2ecKHS9//2gAMAwEAAgADAAAAEP8A3//EABcRAQEBAQAAAAAAAAAAAAAAAAEAEXH/2gAIAQMBAT8QYM7Dhf/EABYRAQEBAAAAAAAAAAAAAAAAAAEQEf/aAAgBAgEBPxBMn//EABgQAQEBAQEAAAAAAAAAAAAAAAERACEx/9oACAEBAAE/EHvlATV5EyyC7ri5hiAZfN//2Q=="},"backgroundColor":"transparent","images":{"fallback":{"src":"/static/0e668d7a6c151e1a655f78c63df69b40/7ee67/blog2.jpg","srcSet":"/static/0e668d7a6c151e1a655f78c63df69b40/14322/blog2.jpg 576w,\\n/static/0e668d7a6c151e1a655f78c63df69b40/cca1b/blog2.jpg 768w,\\n/static/0e668d7a6c151e1a655f78c63df69b40/7ee67/blog2.jpg 800w","sizes":"(min-width: 800px) 800px, 100vw"},"sources":[{"srcSet":"/static/0e668d7a6c151e1a655f78c63df69b40/470f1/blog2.webp 576w,\\n/static/0e668d7a6c151e1a655f78c63df69b40/59191/blog2.webp 768w,\\n/static/0e668d7a6c151e1a655f78c63df69b40/79b41/blog2.webp 800w","type":"image/webp","sizes":"(min-width: 800px) 800px, 100vw"}]},"width":800,"height":300}')},4203:function(A){A.exports=JSON.parse('{"layout":"constrained","placeholder":{"fallback":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAKABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAEDBAX/xAAWAQEBAQAAAAAAAAAAAAAAAAABAgP/2gAMAwEAAhADEAAAAeZSb1M4yT//xAAaEAACAwEBAAAAAAAAAAAAAAAAAgEDMRIi/9oACAEBAAEFAq55PSj7XkDb/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFREBAQAAAAAAAAAAAAAAAAAAARD/2gAIAQIBAT8BJ//EABkQAAIDAQAAAAAAAAAAAAAAAAECABEgQf/aAAgBAQAGPwIHsW1z/8QAGhABAAIDAQAAAAAAAAAAAAAAAQARITFREP/aAAgBAQABPyEKxeUDiBgHHh5bM2z/2gAMAwEAAgADAAAAEPs//8QAFhEBAQEAAAAAAAAAAAAAAAAAARAh/9oACAEDAQE/EEyf/8QAFhEBAQEAAAAAAAAAAAAAAAAAAQAR/9oACAECAQE/EMSG3//EABwQAQADAQADAQAAAAAAAAAAAAEAETEhQVFhof/aAAgBAQABPxDx1FAt7kFtggzoy05o57ouAq/WJ1xqfun/2Q=="},"backgroundColor":"transparent","images":{"fallback":{"src":"/static/8d1911f2b702793524d17f178f4e0936/ce4ce/blog%402x.jpg","srcSet":"/static/8d1911f2b702793524d17f178f4e0936/4ef98/blog%402x.jpg 576w,\\n/static/8d1911f2b702793524d17f178f4e0936/7f9b9/blog%402x.jpg 768w,\\n/static/8d1911f2b702793524d17f178f4e0936/2af1f/blog%402x.jpg 992w,\\n/static/8d1911f2b702793524d17f178f4e0936/52fd2/blog%402x.jpg 1200w,\\n/static/8d1911f2b702793524d17f178f4e0936/ce4ce/blog%402x.jpg 1600w","sizes":"(min-width: 1600px) 1600px, 100vw"},"sources":[{"srcSet":"/static/8d1911f2b702793524d17f178f4e0936/f743f/blog%402x.webp 576w,\\n/static/8d1911f2b702793524d17f178f4e0936/66d16/blog%402x.webp 768w,\\n/static/8d1911f2b702793524d17f178f4e0936/c7aae/blog%402x.webp 992w,\\n/static/8d1911f2b702793524d17f178f4e0936/823ad/blog%402x.webp 1200w,\\n/static/8d1911f2b702793524d17f178f4e0936/c89e5/blog%402x.webp 1600w","type":"image/webp","sizes":"(min-width: 1600px) 1600px, 100vw"}]},"width":1600,"height":800}')}}]); +//# sourceMappingURL=component---src-pages-blog-blog-post-jsx-872d5fd392edfc490c94.js.map \ No newline at end of file diff --git a/component---src-pages-blog-blog-post-jsx-872d5fd392edfc490c94.js.map b/component---src-pages-blog-blog-post-jsx-872d5fd392edfc490c94.js.map new file mode 100644 index 0000000..5e879a0 --- /dev/null +++ b/component---src-pages-blog-blog-post-jsx-872d5fd392edfc490c94.js.map @@ -0,0 +1 @@ +{"version":3,"file":"component---src-pages-blog-blog-post-jsx-872d5fd392edfc490c94.js","mappings":"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","sources":["webpack://ivannikov.pro-website/./src/components/elements/GradientRound.jsx","webpack://ivannikov.pro-website/./src/components/elements/NavSecondPage.jsx","webpack://ivannikov.pro-website/./src/pages/blog/blog-post.jsx"],"sourcesContent":["import './GradientRound.scss';\n\nimport React from 'react';\n\n\n\nexport function GradientRound1({ className, }) {\n let clsName = `gradient-round gradient-round-1`;\n if (className) clsName += ` ${className}`;\n return (
);\n};\n\n\nexport function GradientRound2({ className, }) {\n let clsName = `gradient-round gradient-round-2`;\n if (className) clsName += ` ${className}`;\n return (
);\n};\n\nexport function GradientRoundBlog1({ className, }) {\n let clsName = `gradient-round gradient-round-blog-1`;\n if (className) clsName += ` ${className}`;\n return (
);\n};\n\n\nexport function GradientRoundBlog2({ className, }) {\n let clsName = `gradient-round gradient-round-blog-2`;\n if (className) clsName += ` ${className}`;\n return (
);\n};\n","import \"./NavSecondPage.scss\";\n\nimport React from \"react\";\nimport { Link } from \"../Link\";\nimport { ArrowLeftIcon, ArrowRightIcon } from \"../Svg\";\n\n\n\nexport function NavSecondPagePreviousTo({ className, linkTitle, linkTo, }) {\n let clsName = \"\";\n if (className) clsName += ` ${className}`;\n return (\n \n \n {linkTitle}\n \n );\n};\n\n\nexport function NavSecondPageNextTo({ className, linkTitle, linkTo, }) {\n let clsName = \"\";\n if (className) clsName += ` ${className}`;\n return (\n \n {linkTitle}\n \n \n );\n};\n\n\nexport function NavSecondPageBackTo({ className, linkTitle, linkTo, }) {\n let clsName = \"back second-page__nav-link\";\n if (className) clsName += ` ${className}`;\n return (\n \n );\n};\n\n\nexport function NavSecondPagePreviousNext({\n className,\n previous = { className: \"\", title: \"\", linkTitle: \"\", linkTo: \"\", },\n next = { className: \"\", title: \"\", linkTitle: \"\", linkTo: \"\", },\n}) {\n let clsName = \"\";\n if (className) clsName += ` ${className}`;\n return (\n
\n
\n {next.title}\n
\n \n
\n
\n\n
\n {next.title}\n
\n \n
\n
\n
\n );\n};\n","import \"../section-blog.scss\";\n\nimport React, { useContext, } from 'react';\nimport { ThemeContext, } from '../../theme';\nimport { useTranslation, } from 'react-i18next';\n\nimport Page from \"../../components/Page\";\nimport { GradientRoundBlog1, GradientRoundBlog2 } from \"../../components/elements/GradientRound\";\nimport { NavSecondPageBackTo, NavSecondPagePreviousNext } from \"../../components/elements/NavSecondPage\";\n\nimport { StaticImage, } from 'gatsby-plugin-image';\n\n\n\nexport default function TermsPage() {\n const { t, } = useTranslation(\"blog-post\");\n\n return (\n \n
\n
\n
\n
\n
\n \n
\n\n
\n
\n \n \n
\n\n

Title

\n

Sub Title

\n

Text

\n

Text

\n

Text

\n\n

Sub Title

\n

Text

\n

Text

\n
\n \n \n
\n

Text

\n

Text

\n\n \n
\n
\n
\n
\n
\n \n );\n}\n"],"names":["GradientRound1","_ref","className","clsName","React","GradientRound2","_ref2","GradientRoundBlog1","_ref3","GradientRoundBlog2","_ref4","NavSecondPagePreviousTo","linkTitle","linkTo","Link","to","ArrowLeftIcon","NavSecondPageNextTo","ArrowRightIcon","NavSecondPageBackTo","NavSecondPagePreviousNext","previous","title","next","TermsPage","t","useTranslation","Page","description","keywords","id","StaticImage","alt","src","placeholder","__imageData","require"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-index-jsx-c574676565ac4f956b75.js b/component---src-pages-index-jsx-c574676565ac4f956b75.js new file mode 100644 index 0000000..7098ab9 --- /dev/null +++ b/component---src-pages-index-jsx-c574676565ac4f956b75.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkivannikov_pro_website=self.webpackChunkivannikov_pro_website||[]).push([[279],{4790:function(e,t,l){l.r(t),l.d(t,{default:function(){return v}});var a=l(6540),i=l(2389),o=l(8865),n=l(6056),c=l(1550),s=l(5349),r=l(6348),m=l(1563),p=l(6711),d=l(79);const E=8;function f(e){const{i18n:t,t:l}=(0,i.Bd)("portfolio"),{0:o,1:n}=(0,a.useState)({id:"all",name:"All"}),{0:c,1:f}=(0,a.useState)(d.v.slice(0,E));return(0,a.useEffect)((()=>{const e=d.v.filter((e=>e.tags.includes(o.id)));f(e.slice(0,E))}),[o]),a.createElement("section",{id:"section-portfolio",className:"section-portfolio"},a.createElement(s.UA,null),a.createElement(s.$c,null),a.createElement("br",null),a.createElement("div",{className:"container"},a.createElement("h2",{className:"title"},l("Portfolio")),a.createElement("p",{className:"desc"},l("portfolioDescription")),a.createElement("div",{className:"portfolio__tabs"},d.S.map((e=>a.createElement(r.A,{key:e.id,className:"portfolio__tab",size:"small",variant:o.id===e.id?"gradient":"base",active:o.id===e.id,onClick:()=>n(e)},l(e.name))))),a.createElement("div",{className:"row portfolio"},c.slice(0,1).map((e=>a.createElement("div",{key:e.id,className:"col-12 col-lg-8"},a.createElement("div",{className:"portfolio"},a.createElement("div",{className:"portfolio-item portfolio-item__big"},e.img&&a.createElement("span",{className:"portfolio-item__img"},e.img(e,t)),a.createElement("div",{className:"portfolio-content"},e.icon&&a.createElement("span",{className:"portfolio-item__icon"},a.createElement("img",{alt:e.title[t.language],title:e.title[t.language],src:e.icon})),a.createElement("div",{className:"portfolio-item__title"},e.title[t.language]),a.createElement("div",{className:"portfolio-item__desc"},e.desc[t.language]),a.createElement("div",{className:"portfolio-item__link"},a.createElement(m.A,{to:e.link,text:l("Read more")})))))))),c.slice(1).map((e=>a.createElement("div",{key:e.id,className:"col-12 col-lg-4"},a.createElement("div",{className:"portfolio"},a.createElement("div",{className:"portfolio-item"},e.img&&a.createElement("span",{className:"portfolio-item__img"},e.img(e,t)),a.createElement("div",{className:"portfolio-item__title"},e.title[t.language]),a.createElement("div",{className:"portfolio-item__desc"},e.desc[t.language]),a.createElement("div",{className:"portfolio-item__link"},a.createElement(m.A,{to:e.link,text:l("Read more")})))))))),a.createElement("div",{className:"portfolio__more"},a.createElement(p.N,{to:"/portfolio"},a.createElement(r.A,{className:"",size:"full",variant:"gradient"},l("More"))))))}l(7643);l.p,l.p,l.p,l.p,l.p,l.p,l.p,l.p,l.p,l.p;function v(){const{theme:e}=(0,a.useContext)(o.Dx),{t:t}=(0,i.Bd)("translation");return a.createElement(n.A,{keywords:t("keywordsList")},a.createElement("div",{id:"front "+e,style:{minHeight:"95vh"}},a.createElement("main",{className:"main"},a.createElement(c.A,{preTitle:t("Aleksandr Ivannikov"),title:t("ProjectSlogan"),description:t("Introduction")}),a.createElement(f,null))))}}}]); +//# sourceMappingURL=component---src-pages-index-jsx-c574676565ac4f956b75.js.map \ No newline at end of file diff --git a/component---src-pages-index-jsx-f25f74efa582a9e64cfb.js.map b/component---src-pages-index-jsx-c574676565ac4f956b75.js.map similarity index 98% rename from component---src-pages-index-jsx-f25f74efa582a9e64cfb.js.map rename to component---src-pages-index-jsx-c574676565ac4f956b75.js.map index 337ef05..3a26775 100644 --- a/component---src-pages-index-jsx-f25f74efa582a9e64cfb.js.map +++ b/component---src-pages-index-jsx-c574676565ac4f956b75.js.map @@ -1 +1 @@ -{"version":3,"file":"component---src-pages-index-jsx-f25f74efa582a9e64cfb.js","mappings":"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","sources":["webpack://ivannikov.pro-website/./src/screens/ScreenPortfolio.jsx","webpack://ivannikov.pro-website/./src/assets/images/blog/1.png","webpack://ivannikov.pro-website/./src/assets/images/blog/1@2x.png","webpack://ivannikov.pro-website/./src/assets/images/blog/2.png","webpack://ivannikov.pro-website/./src/assets/images/blog/2@2x.png","webpack://ivannikov.pro-website/./src/assets/images/blog/3.png","webpack://ivannikov.pro-website/./src/assets/images/blog/3@2x.png","webpack://ivannikov.pro-website/./src/assets/images/blog/4.png","webpack://ivannikov.pro-website/./src/assets/images/blog/4@2x.png","webpack://ivannikov.pro-website/./src/assets/images/blog/5.png","webpack://ivannikov.pro-website/./src/assets/images/blog/5@2x.png","webpack://ivannikov.pro-website/./src/pages/index.jsx"],"sourcesContent":["import './ScreenPortfolio.scss';\n\nimport React, { useState, useEffect, } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { GradientRound1, GradientRound2 } from '../components/elements/GradientRound';\n\nimport CommonButton from '../components/CommonButton';\nimport InnerLink from '../components/InnerLink';\nimport { Link, } from '../components/Link';\n\nimport { portfolioTags, portfolioList, } from '../data/portfolio';\n\n\n\nconst showLimit = 8; // 2, 5, 8, +3\n\nexport default function ScreenPortfolio(props) {\n const { i18n, t, } = useTranslation('portfolio');\n const [currentTag, setCurrentTag] = useState({ id: 'all', name: 'All', });\n\n const [posts, setPosts] = useState(portfolioList.slice(0, showLimit));\n useEffect(() => {\n const posts = portfolioList.filter((item) => item.tags.includes(currentTag.id));\n setPosts(posts.slice(0, showLimit));\n }, [currentTag]);\n\n return (\n
\n \n \n
\n
\n

{t('Portfolio')}

\n

{t('portfolioDescription')}

\n
\n {portfolioTags.map((item) =>\n setCurrentTag(item)}\n >\n {t(item.name)}\n \n )}\n
\n\n
\n {posts.slice(0, 1).map((item) => {\n return (\n \n
\n
\n {item.img && \n {item.img(item, i18n)}\n }\n\n
\n {/*
\n {new Date(item.date).toLocaleDateString(i18n.language)}\n
*/}\n {item.icon && \n \n }\n
{item.title[i18n.language]}
\n
\n {item.desc[i18n.language]}\n
\n
\n \n
\n
\n
\n
\n
\n );\n })}\n\n {posts.slice(1).map((item) => {\n return (\n \n
\n
\n {item.img && \n {item.img(item, i18n)}\n }\n {/*
\n {new Date(item.date).toLocaleDateString(i18n.language)}\n
*/}\n
{item.title[i18n.language]}
\n
\n {item.desc[i18n.language]}\n
\n
\n \n
\n
\n
\n
\n );\n })}\n
\n\n \n \n \n {t('More')}\n \n \n
\n
\n \n );\n};\n","export default __webpack_public_path__ + \"static/1-4d65268546e2f6c04badb94e62350dc7.png\";","export default __webpack_public_path__ + \"static/1@2x-a382e9fb48f5d76fea7b1b642af06a36.png\";","export default __webpack_public_path__ + \"static/2-d699db30d9a3df1f1878b10f6b748064.png\";","export default __webpack_public_path__ + \"static/2@2x-09e4a50364d19ab7bfa84a45b5cbd53e.png\";","export default __webpack_public_path__ + \"static/3-ed75a7fabe5e8927b36a73f2dda44e4e.png\";","export default __webpack_public_path__ + \"static/3@2x-aeb4dd70ab981456f00c9ddaefa0fe30.png\";","export default __webpack_public_path__ + \"static/4-2cb1c3c2ddeb7d4070fe8cdeac67bb2f.png\";","export default __webpack_public_path__ + \"static/4@2x-4e322c2658fedf8b8fba10284831e29d.png\";","export default __webpack_public_path__ + \"static/5-fd436fafcd8361b6c3791fef00eab30c.png\";","export default __webpack_public_path__ + \"static/5@2x-0b505800d15bbe98e7882cd09b54c11f.png\";","import './index.scss';\n\nimport React, { useContext, } from 'react';\nimport { useTranslation, } from 'react-i18next';\n\nimport { ThemeContext, } from '../theme';\nimport Page from '../components/Page';\nimport ScreenStart from '../screens/ScreenStart';\nimport ScreenPortfolio from '../screens/ScreenPortfolio';\nimport ScreenProjects from '../screens/ScreenProjects';\nimport ScreenBlog from '../screens/ScreenBlog';\n\n\n\nexport default function IndexPage() {\n const { theme, } = useContext(ThemeContext);\n //const { locale, defaultLang, config, } = useLocalization();\n const { t, } = useTranslation('translation');\n\n return (\n \n
\n
\n \n\n {/*\n */}\n \n
\n
\n \n );\n}\n\n\n/*\nexport const pageQuery = graphql`\n query BlogPostBySlug(\n $id: String!\n $previousPostId: String\n $nextPostId: String\n ) {\n site {\n siteMetadata {\n title\n siteUrl\n }\n }\n markdownRemark(id: { eq: $id }) {\n id\n excerpt(pruneLength: 160)\n html\n frontmatter {\n title\n date(formatString: 'MMMM DD, YYYY')\n description\n\n thumbnail {\n childImageSharp {\n fixed(width: 1200) {\n ...GatsbyImageSharpFixed\n }\n }\n }\n \n }\n } \n }\n`;\n*/"],"names":["showLimit","ScreenPortfolio","props","i18n","t","useTranslation","currentTag","setCurrentTag","useState","id","name","posts","setPosts","portfolioList","slice","useEffect","filter","item","tags","includes","React","className","GradientRound1","GradientRound2","portfolioTags","map","CommonButton","key","size","variant","active","onClick","img","icon","alt","title","language","src","desc","InnerLink","to","link","text","Link","IndexPage","theme","useContext","ThemeContext","Page","keywords","style","minHeight","ScreenStart","preTitle","description"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"component---src-pages-index-jsx-c574676565ac4f956b75.js","mappings":"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","sources":["webpack://ivannikov.pro-website/./src/screens/ScreenPortfolio.jsx","webpack://ivannikov.pro-website/./src/assets/images/blog/1.png","webpack://ivannikov.pro-website/./src/assets/images/blog/1@2x.png","webpack://ivannikov.pro-website/./src/assets/images/blog/2.png","webpack://ivannikov.pro-website/./src/assets/images/blog/2@2x.png","webpack://ivannikov.pro-website/./src/assets/images/blog/3.png","webpack://ivannikov.pro-website/./src/assets/images/blog/3@2x.png","webpack://ivannikov.pro-website/./src/assets/images/blog/4.png","webpack://ivannikov.pro-website/./src/assets/images/blog/4@2x.png","webpack://ivannikov.pro-website/./src/assets/images/blog/5.png","webpack://ivannikov.pro-website/./src/assets/images/blog/5@2x.png","webpack://ivannikov.pro-website/./src/pages/index.jsx"],"sourcesContent":["import './ScreenPortfolio.scss';\n\nimport React, { useState, useEffect, } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { GradientRound1, GradientRound2 } from '../components/elements/GradientRound';\n\nimport CommonButton from '../components/CommonButton';\nimport InnerLink from '../components/InnerLink';\nimport { Link, } from '../components/Link';\n\nimport { portfolioTags, portfolioList, } from '../data/portfolio';\n\n\n\nconst showLimit = 8; // 2, 5, 8, +3\n\nexport default function ScreenPortfolio(props) {\n const { i18n, t, } = useTranslation('portfolio');\n const [currentTag, setCurrentTag] = useState({ id: 'all', name: 'All', });\n\n const [posts, setPosts] = useState(portfolioList.slice(0, showLimit));\n useEffect(() => {\n const posts = portfolioList.filter((item) => item.tags.includes(currentTag.id));\n setPosts(posts.slice(0, showLimit));\n }, [currentTag]);\n\n return (\n
\n \n \n
\n
\n

{t('Portfolio')}

\n

{t('portfolioDescription')}

\n
\n {portfolioTags.map((item) =>\n setCurrentTag(item)}\n >\n {t(item.name)}\n \n )}\n
\n\n
\n {posts.slice(0, 1).map((item) => {\n return (\n \n
\n
\n {item.img && \n {item.img(item, i18n)}\n }\n\n
\n {/*
\n {new Date(item.date).toLocaleDateString(i18n.language)}\n
*/}\n {item.icon && \n \n }\n
{item.title[i18n.language]}
\n
\n {item.desc[i18n.language]}\n
\n
\n \n
\n
\n
\n
\n
\n );\n })}\n\n {posts.slice(1).map((item) => {\n return (\n \n
\n
\n {item.img && \n {item.img(item, i18n)}\n }\n {/*
\n {new Date(item.date).toLocaleDateString(i18n.language)}\n
*/}\n
{item.title[i18n.language]}
\n
\n {item.desc[i18n.language]}\n
\n
\n \n
\n
\n
\n
\n );\n })}\n
\n\n \n \n \n {t('More')}\n \n \n \n \n \n );\n};\n","export default __webpack_public_path__ + \"static/1-4d65268546e2f6c04badb94e62350dc7.png\";","export default __webpack_public_path__ + \"static/1@2x-a382e9fb48f5d76fea7b1b642af06a36.png\";","export default __webpack_public_path__ + \"static/2-d699db30d9a3df1f1878b10f6b748064.png\";","export default __webpack_public_path__ + \"static/2@2x-09e4a50364d19ab7bfa84a45b5cbd53e.png\";","export default __webpack_public_path__ + \"static/3-ed75a7fabe5e8927b36a73f2dda44e4e.png\";","export default __webpack_public_path__ + \"static/3@2x-aeb4dd70ab981456f00c9ddaefa0fe30.png\";","export default __webpack_public_path__ + \"static/4-2cb1c3c2ddeb7d4070fe8cdeac67bb2f.png\";","export default __webpack_public_path__ + \"static/4@2x-4e322c2658fedf8b8fba10284831e29d.png\";","export default __webpack_public_path__ + \"static/5-fd436fafcd8361b6c3791fef00eab30c.png\";","export default __webpack_public_path__ + \"static/5@2x-0b505800d15bbe98e7882cd09b54c11f.png\";","import './index.scss';\n\nimport React, { useContext, } from 'react';\nimport { useTranslation, } from 'react-i18next';\n\nimport { ThemeContext, } from '../theme';\nimport Page from '../components/Page';\nimport ScreenStart from '../screens/ScreenStart';\nimport ScreenPortfolio from '../screens/ScreenPortfolio';\nimport ScreenProjects from '../screens/ScreenProjects';\nimport ScreenBlog from '../screens/ScreenBlog';\n\n\n\nexport default function IndexPage() {\n const { theme, } = useContext(ThemeContext);\n //const { locale, defaultLang, config, } = useLocalization();\n const { t, } = useTranslation('translation');\n\n return (\n \n
\n
\n \n\n {/*\n */}\n \n
\n
\n \n );\n}\n\n\n/*\nexport const pageQuery = graphql`\n query BlogPostBySlug(\n $id: String!\n $previousPostId: String\n $nextPostId: String\n ) {\n site {\n siteMetadata {\n title\n siteUrl\n }\n }\n markdownRemark(id: { eq: $id }) {\n id\n excerpt(pruneLength: 160)\n html\n frontmatter {\n title\n date(formatString: 'MMMM DD, YYYY')\n description\n\n thumbnail {\n childImageSharp {\n fixed(width: 1200) {\n ...GatsbyImageSharpFixed\n }\n }\n }\n \n }\n } \n }\n`;\n*/"],"names":["showLimit","ScreenPortfolio","props","i18n","t","useTranslation","currentTag","setCurrentTag","useState","id","name","posts","setPosts","portfolioList","slice","useEffect","filter","item","tags","includes","React","className","GradientRound1","GradientRound2","portfolioTags","map","CommonButton","key","size","variant","active","onClick","img","icon","alt","title","language","src","desc","InnerLink","to","link","text","Link","IndexPage","theme","useContext","ThemeContext","Page","keywords","style","minHeight","ScreenStart","preTitle","description"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-index-jsx-f25f74efa582a9e64cfb.js b/component---src-pages-index-jsx-f25f74efa582a9e64cfb.js deleted file mode 100644 index cd3a5b1..0000000 --- a/component---src-pages-index-jsx-f25f74efa582a9e64cfb.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkivannikov_pro_website=self.webpackChunkivannikov_pro_website||[]).push([[279],{4790:function(e,t,l){l.r(t),l.d(t,{default:function(){return v}});var a=l(6540),i=l(2389),o=l(8865),n=l(6056),c=l(1550),s=l(5349),r=l(6348),m=l(1563),p=l(6711),d=l(79);const E=8;function f(e){const{i18n:t,t:l}=(0,i.Bd)("portfolio"),{0:o,1:n}=(0,a.useState)({id:"all",name:"All"}),{0:c,1:f}=(0,a.useState)(d.v.slice(0,E));return(0,a.useEffect)((()=>{const e=d.v.filter((e=>e.tags.includes(o.id)));f(e.slice(0,E))}),[o]),a.createElement("section",{id:"section-portfolio",className:"section-portfolio"},a.createElement(s.U,null),a.createElement(s.$,null),a.createElement("br",null),a.createElement("div",{className:"container"},a.createElement("h2",{className:"title"},l("Portfolio")),a.createElement("p",{className:"desc"},l("portfolioDescription")),a.createElement("div",{className:"portfolio__tabs"},d.S.map((e=>a.createElement(r.A,{key:e.id,className:"portfolio__tab",size:"small",variant:o.id===e.id?"gradient":"base",active:o.id===e.id,onClick:()=>n(e)},l(e.name))))),a.createElement("div",{className:"row portfolio"},c.slice(0,1).map((e=>a.createElement("div",{key:e.id,className:"col-12 col-lg-8"},a.createElement("div",{className:"portfolio"},a.createElement("div",{className:"portfolio-item portfolio-item__big"},e.img&&a.createElement("span",{className:"portfolio-item__img"},e.img(e,t)),a.createElement("div",{className:"portfolio-content"},e.icon&&a.createElement("span",{className:"portfolio-item__icon"},a.createElement("img",{alt:e.title[t.language],title:e.title[t.language],src:e.icon})),a.createElement("div",{className:"portfolio-item__title"},e.title[t.language]),a.createElement("div",{className:"portfolio-item__desc"},e.desc[t.language]),a.createElement("div",{className:"portfolio-item__link"},a.createElement(m.A,{to:e.link,text:l("Read more")})))))))),c.slice(1).map((e=>a.createElement("div",{key:e.id,className:"col-12 col-lg-4"},a.createElement("div",{className:"portfolio"},a.createElement("div",{className:"portfolio-item"},e.img&&a.createElement("span",{className:"portfolio-item__img"},e.img(e,t)),a.createElement("div",{className:"portfolio-item__title"},e.title[t.language]),a.createElement("div",{className:"portfolio-item__desc"},e.desc[t.language]),a.createElement("div",{className:"portfolio-item__link"},a.createElement(m.A,{to:e.link,text:l("Read more")})))))))),a.createElement("div",{className:"portfolio__more"},a.createElement(p.N,{to:"/portfolio"},a.createElement(r.A,{className:"",size:"full",variant:"gradient"},l("More"))))))}l(7643);l.p,l.p,l.p,l.p,l.p,l.p,l.p,l.p,l.p,l.p;function v(){const{theme:e}=(0,a.useContext)(o.Dx),{t:t}=(0,i.Bd)("translation");return a.createElement(n.A,{keywords:t("keywordsList")},a.createElement("div",{id:"front "+e,style:{minHeight:"95vh"}},a.createElement("main",{className:"main"},a.createElement(c.A,{preTitle:t("Aleksandr Ivannikov"),title:t("ProjectSlogan"),description:t("Introduction")}),a.createElement(f,null))))}}}]); -//# sourceMappingURL=component---src-pages-index-jsx-f25f74efa582a9e64cfb.js.map \ No newline at end of file diff --git a/component---src-pages-portfolio-jsx-de70e7a75fce95149974.js b/component---src-pages-portfolio-jsx-b41f52f683896ab46d88.js similarity index 52% rename from component---src-pages-portfolio-jsx-de70e7a75fce95149974.js rename to component---src-pages-portfolio-jsx-b41f52f683896ab46d88.js index 8276a90..6f98105 100644 --- a/component---src-pages-portfolio-jsx-de70e7a75fce95149974.js +++ b/component---src-pages-portfolio-jsx-b41f52f683896ab46d88.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkivannikov_pro_website=self.webpackChunkivannikov_pro_website||[]).push([[71],{2099:function(e,t,a){a.d(t,{Xh:function(){return m},zI:function(){return o}});var l=a(6540),n=a(6711),i=a(2635);function c(e){let{className:t,linkTitle:a,linkTo:c}=e,s="";return t&&(s+=" "+t),l.createElement(n.N,{className:s,to:c},l.createElement(i.A6,null),l.createElement("span",null,a))}function s(e){let{className:t,linkTitle:a,linkTo:c}=e,s="";return t&&(s+=" "+t),l.createElement(n.N,{className:s,to:c},l.createElement("span",null,a),l.createElement(i.fl,null))}function o(e){let{className:t,linkTitle:a,linkTo:n}=e,i="back second-page__nav-link";return t&&(i+=" "+t),l.createElement(c,{className:i,linkTitle:a,linkTo:n})}function m(e){let{className:t,previous:a={className:"",title:"",linkTitle:"",linkTo:""},next:n={className:"",title:"",linkTitle:"",linkTo:""}}=e,i="";return t&&" "+t,l.createElement("div",{className:"second-page__nav"},l.createElement("div",{className:"second-page__nav-left second-page__nav-item"},l.createElement("span",{className:"second-page__nav-title"},n.title),l.createElement("div",{className:"second-page__nav-link"},l.createElement(c,{className:a.className,linkTitle:a.linkTitle,linkTo:a.linkTo}))),l.createElement("div",{className:"second-page__nav-right second-page__nav-item"},l.createElement("span",{className:"second-page__nav-title"},n.title),l.createElement("div",{className:"second-page__nav-link"},l.createElement(s,{className:n.className,linkTitle:n.linkTitle,linkTo:n.linkTo}))))}},4218:function(e,t,a){a.r(t),a.d(t,{default:function(){return E}});var l=a(6540),n=a(2389),i=a(8865),c=a(6056),s=a(2099),o=a(1550),m=a(5349),r=a(6348),d=a(1563),p=a(79);function v(e){const{i18n:t,t:a}=(0,n.Bd)("portfolio"),{0:i,1:c}=(0,l.useState)({id:"all",name:"All"}),{0:s,1:o}=(0,l.useState)(p.v);return(0,l.useEffect)((()=>{const e=p.v.filter((e=>e.tags.includes(i.id)));o(e)}),[i]),l.createElement("section",{id:"section-portfolio-page",className:"section-portfolio-page"},l.createElement(m.U,null),l.createElement(m.$,null),l.createElement("div",{className:"container"},l.createElement("div",{className:"portfolio-page__tabs"},p.S.map((e=>l.createElement(r.A,{key:e.id,className:"portfolio-page__tab",size:"small",variant:i.id===e.id?"gradient":"base",active:i.id===e.id,onClick:()=>c(e)},a(e.name))))),l.createElement("div",{className:"row portfolio-page"},s.map((e=>l.createElement("div",{key:e.id,className:"col-12"},l.createElement("div",{className:"portfolio-page"},l.createElement("div",{className:"portfolio-page-item"},e.img&&l.createElement("span",{className:"portfolio-page-item__img"},e.img(e,t)),l.createElement("div",{className:"portfolio-page-item__title"},e.title[t.language]),l.createElement("div",{className:"portfolio-page-item__desc"},e.desc[t.language]),l.createElement("div",{className:"portfolio-page-item__link"},l.createElement(d.A,{to:e.link,text:a("Read more")}))))))))))}function E(){const{theme:e}=(0,l.useContext)(i.Dx),{t:t}=(0,n.Bd)("portfolio");return l.createElement(c.A,{title:t("Portfolio"),keywords:t("keywordsList")},l.createElement("div",{id:"front "+e,style:{minHeight:"95vh"}},l.createElement("main",{className:"main"},l.createElement(o.A,{preTitle:t("Aleksandr Ivannikov"),title:t("Portfolio"),description:t("portfolioDescription")}),l.createElement("section",{className:"section-second-page"},l.createElement("div",{className:"container"},l.createElement("div",{className:"row"},l.createElement("div",{className:"col-lg-2"},l.createElement(s.zI,{linkTitle:t("To Home Page"),linkTo:"/"})),l.createElement("div",{className:"col-12 col-lg-8 content"},l.createElement(v,null))))))))}}}]); -//# sourceMappingURL=component---src-pages-portfolio-jsx-de70e7a75fce95149974.js.map \ No newline at end of file +"use strict";(self.webpackChunkivannikov_pro_website=self.webpackChunkivannikov_pro_website||[]).push([[71],{2099:function(e,t,a){a.d(t,{Xh:function(){return m},zI:function(){return o}});var l=a(6540),n=a(6711),i=a(2635);function c(e){let{className:t,linkTitle:a,linkTo:c}=e,s="";return t&&(s+=" "+t),l.createElement(n.N,{className:s,to:c},l.createElement(i.A6,null),l.createElement("span",null,a))}function s(e){let{className:t,linkTitle:a,linkTo:c}=e,s="";return t&&(s+=" "+t),l.createElement(n.N,{className:s,to:c},l.createElement("span",null,a),l.createElement(i.fl,null))}function o(e){let{className:t,linkTitle:a,linkTo:n}=e,i="back second-page__nav-link";return t&&(i+=" "+t),l.createElement(c,{className:i,linkTitle:a,linkTo:n})}function m(e){let{className:t,previous:a={className:"",title:"",linkTitle:"",linkTo:""},next:n={className:"",title:"",linkTitle:"",linkTo:""}}=e,i="";return t&&" "+t,l.createElement("div",{className:"second-page__nav"},l.createElement("div",{className:"second-page__nav-left second-page__nav-item"},l.createElement("span",{className:"second-page__nav-title"},n.title),l.createElement("div",{className:"second-page__nav-link"},l.createElement(c,{className:a.className,linkTitle:a.linkTitle,linkTo:a.linkTo}))),l.createElement("div",{className:"second-page__nav-right second-page__nav-item"},l.createElement("span",{className:"second-page__nav-title"},n.title),l.createElement("div",{className:"second-page__nav-link"},l.createElement(s,{className:n.className,linkTitle:n.linkTitle,linkTo:n.linkTo}))))}},4218:function(e,t,a){a.r(t),a.d(t,{default:function(){return E}});var l=a(6540),n=a(2389),i=a(8865),c=a(6056),s=a(2099),o=a(1550),m=a(5349),r=a(6348),d=a(1563),p=a(79);function v(e){const{i18n:t,t:a}=(0,n.Bd)("portfolio"),{0:i,1:c}=(0,l.useState)({id:"all",name:"All"}),{0:s,1:o}=(0,l.useState)(p.v);return(0,l.useEffect)((()=>{const e=p.v.filter((e=>e.tags.includes(i.id)));o(e)}),[i]),l.createElement("section",{id:"section-portfolio-page",className:"section-portfolio-page"},l.createElement(m.UA,null),l.createElement(m.$c,null),l.createElement("div",{className:"container"},l.createElement("div",{className:"portfolio-page__tabs"},p.S.map((e=>l.createElement(r.A,{key:e.id,className:"portfolio-page__tab",size:"small",variant:i.id===e.id?"gradient":"base",active:i.id===e.id,onClick:()=>c(e)},a(e.name))))),l.createElement("div",{className:"row portfolio-page"},s.map((e=>l.createElement("div",{key:e.id,className:"col-12"},l.createElement("div",{className:"portfolio-page"},l.createElement("div",{className:"portfolio-page-item"},e.img&&l.createElement("span",{className:"portfolio-page-item__img"},e.img(e,t)),l.createElement("div",{className:"portfolio-page-item__title"},e.title[t.language]),l.createElement("div",{className:"portfolio-page-item__desc"},e.desc[t.language]),l.createElement("div",{className:"portfolio-page-item__link"},l.createElement(d.A,{to:e.link,text:a("Read more")}))))))))))}function E(){const{theme:e}=(0,l.useContext)(i.Dx),{t:t}=(0,n.Bd)("portfolio");return l.createElement(c.A,{title:t("Portfolio"),keywords:t("keywordsList")},l.createElement("div",{id:"front "+e,style:{minHeight:"95vh"}},l.createElement("main",{className:"main"},l.createElement(o.A,{preTitle:t("Aleksandr Ivannikov"),title:t("Portfolio"),description:t("portfolioDescription")}),l.createElement("section",{className:"section-second-page"},l.createElement("div",{className:"container"},l.createElement("div",{className:"row"},l.createElement("div",{className:"col-lg-2"},l.createElement(s.zI,{linkTitle:t("To Home Page"),linkTo:"/"})),l.createElement("div",{className:"col-12 col-lg-8 content"},l.createElement(v,null))))))))}}}]); +//# sourceMappingURL=component---src-pages-portfolio-jsx-b41f52f683896ab46d88.js.map \ No newline at end of file diff --git a/component---src-pages-portfolio-jsx-de70e7a75fce95149974.js.map b/component---src-pages-portfolio-jsx-b41f52f683896ab46d88.js.map similarity index 97% rename from component---src-pages-portfolio-jsx-de70e7a75fce95149974.js.map rename to component---src-pages-portfolio-jsx-b41f52f683896ab46d88.js.map index 2d1722d..def5fdc 100644 --- a/component---src-pages-portfolio-jsx-de70e7a75fce95149974.js.map +++ b/component---src-pages-portfolio-jsx-b41f52f683896ab46d88.js.map @@ -1 +1 @@ -{"version":3,"file":"component---src-pages-portfolio-jsx-de70e7a75fce95149974.js","mappings":"6NAQO,SAASA,EAAuBC,GAAqC,IAApC,UAAEC,EAAS,UAAEC,EAAS,OAAEC,GAASH,EACnEI,EAAU,GAEd,OADIH,IAAWG,GAAO,IAAQH,GAE5BI,EAAAA,cAACC,EAAAA,EAAI,CAACL,UAAWG,EAASG,GAAIJ,GAC5BE,EAAAA,cAACG,EAAAA,GAAa,MACdH,EAAAA,cAAA,YAAOH,GAGb,CAGO,SAASO,EAAmBC,GAAqC,IAApC,UAAET,EAAS,UAAEC,EAAS,OAAEC,GAASO,EAC/DN,EAAU,GAEd,OADIH,IAAWG,GAAO,IAAQH,GAE5BI,EAAAA,cAACC,EAAAA,EAAI,CAACL,UAAWG,EAASG,GAAIJ,GAC5BE,EAAAA,cAAA,YAAOH,GACPG,EAAAA,cAACM,EAAAA,GAAc,MAGrB,CAGO,SAASC,EAAmBC,GAAqC,IAApC,UAAEZ,EAAS,UAAEC,EAAS,OAAEC,GAASU,EAC/DT,EAAU,6BAEd,OADIH,IAAWG,GAAO,IAAQH,GAE5BI,EAAAA,cAACN,EAAuB,CACtBE,UAAWG,EACXF,UAAWA,EACXC,OAAQA,GAGd,CAGO,SAASW,EAAyBC,GAIrC,IAJsC,UACxCd,EAAS,SACTe,EAAW,CAAEf,UAAW,GAAIgB,MAAO,GAAIf,UAAW,GAAIC,OAAQ,IAAK,KACnEe,EAAO,CAAEjB,UAAW,GAAIgB,MAAO,GAAIf,UAAW,GAAIC,OAAQ,KAC3DY,EACKX,EAAU,GAEd,OADIH,GAAkB,IAAQA,EAE5BI,EAAAA,cAAA,OAAKJ,UAAU,oBACbI,EAAAA,cAAA,OAAKJ,UAAU,+CACbI,EAAAA,cAAA,QAAMJ,UAAU,0BAA0BiB,EAAKD,OAC/CZ,EAAAA,cAAA,OAAKJ,UAAU,yBACbI,EAAAA,cAACN,EAAuB,CACtBE,UAAWe,EAASf,UACpBC,UAAWc,EAASd,UACpBC,OAAQa,EAASb,WAKvBE,EAAAA,cAAA,OAAKJ,UAAU,gDACbI,EAAAA,cAAA,QAAMJ,UAAU,0BAA0BiB,EAAKD,OAC/CZ,EAAAA,cAAA,OAAKJ,UAAU,yBACbI,EAAAA,cAACI,EAAmB,CAClBR,UAAWiB,EAAKjB,UAChBC,UAAWgB,EAAKhB,UAChBC,OAAQe,EAAKf,WAMzB,C,0KC/De,SAASgB,EAAoBC,GAC1C,MAAM,KAAEC,EAAI,EAAEC,IAAOC,EAAAA,EAAAA,IAAe,cAC9B,EAACC,EAAW,EAACC,IAAiBC,EAAAA,EAAAA,UAAS,CAAEC,GAAI,MAAOC,KAAM,SAE1D,EAACC,EAAM,EAACC,IAAYJ,EAAAA,EAAAA,UAASK,EAAAA,GAMnC,OALAC,EAAAA,EAAAA,YAAU,KACR,MAAMH,EAAQE,EAAAA,EAAcE,QAAQC,GAASA,EAAKC,KAAKC,SAASZ,EAAWG,MAC3EG,EAASD,EAAM,GACd,CAACL,IAGFnB,EAAAA,cAAA,WAASsB,GAAG,yBAAyB1B,UAAU,0BAC7CI,EAAAA,cAACgC,EAAAA,EAAc,MACfhC,EAAAA,cAACiC,EAAAA,EAAc,MACfjC,EAAAA,cAAA,OAAKJ,UAAU,aAGbI,EAAAA,cAAA,OAAKJ,UAAU,wBACZsC,EAAAA,EAAcC,KAAKN,GAClB7B,EAAAA,cAACoC,EAAAA,EAAY,CACXC,IAAKR,EAAKP,GACV1B,UAAU,sBACV0C,KAAK,QACLC,QAASpB,EAAWG,KAAOO,EAAKP,GAAK,WAAa,OAClDkB,OAAQrB,EAAWG,KAAOO,EAAKP,GAC/BmB,QAASA,IAAMrB,EAAcS,IAE5BZ,EAAEY,EAAKN,UAKdvB,EAAAA,cAAA,OAAKJ,UAAU,sBACZ4B,EAAMW,KAAKN,GAER7B,EAAAA,cAAA,OACEqC,IAAKR,EAAKP,GACV1B,UAAU,UAEVI,EAAAA,cAAA,OAAKJ,UAAU,kBACbI,EAAAA,cAAA,OAAKJ,UAAU,uBACZiC,EAAKa,KAAO1C,EAAAA,cAAA,QAAMJ,UAAU,4BAC1BiC,EAAKa,IAAIb,EAAMb,IAKlBhB,EAAAA,cAAA,OAAKJ,UAAU,8BAA8BiC,EAAKjB,MAAMI,EAAK2B,WAC7D3C,EAAAA,cAAA,OAAKJ,UAAU,6BACZiC,EAAKe,KAAK5B,EAAK2B,WAElB3C,EAAAA,cAAA,OAAKJ,UAAU,6BACbI,EAAAA,cAAC6C,EAAAA,EAAS,CACR3C,GAAI2B,EAAKiB,KACTC,KAAM9B,EAAE,uBA2BhC,CCjFe,SAAS+B,IACtB,MAAM,MAAEC,IAAWC,EAAAA,EAAAA,YAAWC,EAAAA,KACxB,EAAElC,IAAOC,EAAAA,EAAAA,IAAe,aAE9B,OACElB,EAAAA,cAACoD,EAAAA,EAAI,CACHxC,MAAOK,EAAE,aACToC,SAAUpC,EAAE,iBAEZjB,EAAAA,cAAA,OAAKsB,GAAE,SAAW2B,EAASK,MAAO,CAAEC,UAAW,SAC7CvD,EAAAA,cAAA,QAAMJ,UAAU,QACdI,EAAAA,cAACwD,EAAAA,EAAW,CACVC,SAAUxC,EAAE,uBACZL,MAAOK,EAAE,aACTyC,YAAazC,EAAE,0BAKjBjB,EAAAA,cAAA,WAASJ,UAAU,uBACjBI,EAAAA,cAAA,OAAKJ,UAAU,aACbI,EAAAA,cAAA,OAAKJ,UAAU,OACbI,EAAAA,cAAA,OAAKJ,UAAU,YACbI,EAAAA,cAACO,EAAAA,GACC,CACAV,UAAWoB,EAAE,gBACbnB,OAAQ,OAIZE,EAAAA,cAAA,OAAKJ,UAAS,2BACZI,EAAAA,cAACc,EAAmB,YAStC,C","sources":["webpack://ivannikov.pro-website/./src/components/elements/NavSecondPage.jsx","webpack://ivannikov.pro-website/./src/screens/ScreenPortfolioPage.jsx","webpack://ivannikov.pro-website/./src/pages/portfolio.jsx"],"sourcesContent":["import \"./NavSecondPage.scss\";\n\nimport React from \"react\";\nimport { Link } from \"../Link\";\nimport { ArrowLeftIcon, ArrowRightIcon } from \"../Svg\";\n\n\n\nexport function NavSecondPagePreviousTo({ className, linkTitle, linkTo, }) {\n let clsName = \"\";\n if (className) clsName += ` ${className}`;\n return (\n \n \n {linkTitle}\n \n );\n};\n\n\nexport function NavSecondPageNextTo({ className, linkTitle, linkTo, }) {\n let clsName = \"\";\n if (className) clsName += ` ${className}`;\n return (\n \n {linkTitle}\n \n \n );\n};\n\n\nexport function NavSecondPageBackTo({ className, linkTitle, linkTo, }) {\n let clsName = \"back second-page__nav-link\";\n if (className) clsName += ` ${className}`;\n return (\n \n );\n};\n\n\nexport function NavSecondPagePreviousNext({\n className,\n previous = { className: \"\", title: \"\", linkTitle: \"\", linkTo: \"\", },\n next = { className: \"\", title: \"\", linkTitle: \"\", linkTo: \"\", },\n}) {\n let clsName = \"\";\n if (className) clsName += ` ${className}`;\n return (\n
\n
\n {next.title}\n
\n \n
\n
\n\n
\n {next.title}\n
\n \n
\n
\n
\n );\n};\n","import './ScreenPortfolioPage.scss';\n\nimport React, { useState, useEffect, } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { GradientRound1, GradientRound2 } from '../components/elements/GradientRound';\n\nimport CommonButton from '../components/CommonButton';\nimport InnerLink from '../components/InnerLink';\n\nimport { portfolioTags, portfolioList, } from '../data/portfolio';\n\n\n\nexport default function ScreenPortfolioPage(props) {\n const { i18n, t, } = useTranslation('portfolio');\n const [currentTag, setCurrentTag] = useState({ id: 'all', name: 'All', });\n\n const [posts, setPosts] = useState(portfolioList);\n useEffect(() => {\n const posts = portfolioList.filter((item) => item.tags.includes(currentTag.id));\n setPosts(posts);\n }, [currentTag]);\n\n return (\n
\n \n \n
\n {/*

{t('Portfolio')}

*/}\n {/*

{t('portfolioDescription')}

*/}\n
\n {portfolioTags.map((item) =>\n setCurrentTag(item)}\n >\n {t(item.name)}\n \n )}\n
\n\n
\n {posts.map((item) => {\n return (\n \n
\n
\n {item.img && \n {item.img(item, i18n)}\n }\n {/*
\n {new Date(item.date).toLocaleDateString(i18n.language)}\n
*/}\n
{item.title[i18n.language]}
\n
\n {item.desc[i18n.language]}\n
\n
\n \n
\n
\n
\n
\n );\n })}\n
\n\n {/*\n \n \n {t('More')}\n \n \n */}\n \n
\n );\n};\n","import './index.scss';\n\nimport React, { useContext, } from 'react';\nimport { useTranslation, } from 'react-i18next';\n\nimport { ThemeContext, } from '../theme';\nimport Page from '../components/Page';\nimport { NavSecondPageBackTo } from \"../components/elements/NavSecondPage\";\n\nimport ScreenStart from '../screens/ScreenStart';\nimport ScreenPortfolioPage from '../screens/ScreenPortfolioPage';\n\n\n\nexport default function PortfolioPage() {\n const { theme, } = useContext(ThemeContext);\n const { t, } = useTranslation('portfolio');\n\n return (\n \n
\n
\n \n\n
\n
\n
\n
\n \n
\n\n
\n \n
\n
\n
\n
\n
\n
\n \n );\n}\n"],"names":["NavSecondPagePreviousTo","_ref","className","linkTitle","linkTo","clsName","React","Link","to","ArrowLeftIcon","NavSecondPageNextTo","_ref2","ArrowRightIcon","NavSecondPageBackTo","_ref3","NavSecondPagePreviousNext","_ref4","previous","title","next","ScreenPortfolioPage","props","i18n","t","useTranslation","currentTag","setCurrentTag","useState","id","name","posts","setPosts","portfolioList","useEffect","filter","item","tags","includes","GradientRound1","GradientRound2","portfolioTags","map","CommonButton","key","size","variant","active","onClick","img","language","desc","InnerLink","link","text","PortfolioPage","theme","useContext","ThemeContext","Page","keywords","style","minHeight","ScreenStart","preTitle","description"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"component---src-pages-portfolio-jsx-b41f52f683896ab46d88.js","mappings":"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","sources":["webpack://ivannikov.pro-website/./src/components/elements/NavSecondPage.jsx","webpack://ivannikov.pro-website/./src/screens/ScreenPortfolioPage.jsx","webpack://ivannikov.pro-website/./src/pages/portfolio.jsx"],"sourcesContent":["import \"./NavSecondPage.scss\";\n\nimport React from \"react\";\nimport { Link } from \"../Link\";\nimport { ArrowLeftIcon, ArrowRightIcon } from \"../Svg\";\n\n\n\nexport function NavSecondPagePreviousTo({ className, linkTitle, linkTo, }) {\n let clsName = \"\";\n if (className) clsName += ` ${className}`;\n return (\n \n \n {linkTitle}\n \n );\n};\n\n\nexport function NavSecondPageNextTo({ className, linkTitle, linkTo, }) {\n let clsName = \"\";\n if (className) clsName += ` ${className}`;\n return (\n \n {linkTitle}\n \n \n );\n};\n\n\nexport function NavSecondPageBackTo({ className, linkTitle, linkTo, }) {\n let clsName = \"back second-page__nav-link\";\n if (className) clsName += ` ${className}`;\n return (\n \n );\n};\n\n\nexport function NavSecondPagePreviousNext({\n className,\n previous = { className: \"\", title: \"\", linkTitle: \"\", linkTo: \"\", },\n next = { className: \"\", title: \"\", linkTitle: \"\", linkTo: \"\", },\n}) {\n let clsName = \"\";\n if (className) clsName += ` ${className}`;\n return (\n
\n
\n {next.title}\n
\n \n
\n
\n\n
\n {next.title}\n
\n \n
\n
\n
\n );\n};\n","import './ScreenPortfolioPage.scss';\n\nimport React, { useState, useEffect, } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { GradientRound1, GradientRound2 } from '../components/elements/GradientRound';\n\nimport CommonButton from '../components/CommonButton';\nimport InnerLink from '../components/InnerLink';\n\nimport { portfolioTags, portfolioList, } from '../data/portfolio';\n\n\n\nexport default function ScreenPortfolioPage(props) {\n const { i18n, t, } = useTranslation('portfolio');\n const [currentTag, setCurrentTag] = useState({ id: 'all', name: 'All', });\n\n const [posts, setPosts] = useState(portfolioList);\n useEffect(() => {\n const posts = portfolioList.filter((item) => item.tags.includes(currentTag.id));\n setPosts(posts);\n }, [currentTag]);\n\n return (\n
\n \n \n
\n {/*

{t('Portfolio')}

*/}\n {/*

{t('portfolioDescription')}

*/}\n
\n {portfolioTags.map((item) =>\n setCurrentTag(item)}\n >\n {t(item.name)}\n \n )}\n
\n\n
\n {posts.map((item) => {\n return (\n \n
\n
\n {item.img && \n {item.img(item, i18n)}\n }\n {/*
\n {new Date(item.date).toLocaleDateString(i18n.language)}\n
*/}\n
{item.title[i18n.language]}
\n
\n {item.desc[i18n.language]}\n
\n
\n \n
\n
\n
\n
\n );\n })}\n
\n\n {/*\n \n \n {t('More')}\n \n \n */}\n \n
\n );\n};\n","import './index.scss';\n\nimport React, { useContext, } from 'react';\nimport { useTranslation, } from 'react-i18next';\n\nimport { ThemeContext, } from '../theme';\nimport Page from '../components/Page';\nimport { NavSecondPageBackTo } from \"../components/elements/NavSecondPage\";\n\nimport ScreenStart from '../screens/ScreenStart';\nimport ScreenPortfolioPage from '../screens/ScreenPortfolioPage';\n\n\n\nexport default function PortfolioPage() {\n const { theme, } = useContext(ThemeContext);\n const { t, } = useTranslation('portfolio');\n\n return (\n \n
\n
\n \n\n
\n
\n
\n
\n \n
\n\n
\n \n
\n
\n
\n
\n
\n
\n \n );\n}\n"],"names":["NavSecondPagePreviousTo","_ref","className","linkTitle","linkTo","clsName","React","Link","to","ArrowLeftIcon","NavSecondPageNextTo","_ref2","ArrowRightIcon","NavSecondPageBackTo","_ref3","NavSecondPagePreviousNext","_ref4","previous","title","next","ScreenPortfolioPage","props","i18n","t","useTranslation","currentTag","setCurrentTag","useState","id","name","posts","setPosts","portfolioList","useEffect","filter","item","tags","includes","GradientRound1","GradientRound2","portfolioTags","map","CommonButton","key","size","variant","active","onClick","img","language","desc","InnerLink","link","text","PortfolioPage","theme","useContext","ThemeContext","Page","keywords","style","minHeight","ScreenStart","preTitle","description"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-products-hotcoin-database-jsx-8f330ba0e34ed5af0ac0.js b/component---src-pages-products-hotcoin-database-jsx-8f330ba0e34ed5af0ac0.js deleted file mode 100644 index d05fe79..0000000 --- a/component---src-pages-products-hotcoin-database-jsx-8f330ba0e34ed5af0ac0.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkivannikov_pro_website=self.webpackChunkivannikov_pro_website||[]).push([[50],{774:function(e,t,a){a.r(t),a.d(t,{default:function(){return r}});var n=a(6540),c=a(2389),i=a(8865),s=a(6056),l=a(1550);a(2635),a(6711);function r(){const{theme:e}=(0,n.useContext)(i.Dx),{t:t}=(0,c.Bd)("products");return n.createElement(s.A,{title:t("Hotcoin Database")+" - "+t("Products"),keywords:t("keywordsList")},n.createElement("div",{id:"front "+e,style:{minHeight:"95vh"}},n.createElement("main",{className:"main"},n.createElement(l.A,{preTitle:t("Aleksandr Ivannikov"),title:t("Hotcoin Database"),description:t("Hotcoin Database")}))))}},1550:function(e,t,a){a.d(t,{A:function(){return r}});var n=a(6540),c=a(2389),i=a(7134),s=a(6348),l=a(6004);function r(e){let{preTitle:t,title:a,description:r,descriptionComponent:o,imageComponent:m}=e;const{t:d}=(0,c.Bd)("translation"),{open:u}=(0,i.hS)("GetInTouchModal");return n.createElement("section",{id:"section-start",className:"section section-start"},n.createElement("div",{className:"container"},n.createElement("div",{className:"row"},n.createElement("div",{className:"col-12 col-md-7 col-lg-6 col-xl-6 relative"},n.createElement("div",{className:"pre-title"},t&&n.createElement("span",null,t)),n.createElement("h1",{className:""},a),n.createElement("p",{className:"desc"},r),o&&o,n.createElement("div",{className:"start-btns"},n.createElement(s.A,{variant:"gradient",size:"static",className:"btn",onClick:u},d("Get in Touch")))),n.createElement("div",{className:"col-12 col-md-5 col-lg-6 col-xl-6"},n.createElement("div",{className:"start__image"},m||n.createElement("img",{alt:d("IVANNIKOV.PRO"),title:d("IVANNIKOV.PRO"),src:l.A}))))))}},6004:function(e,t,a){t.A=a.p+"static/main-ea93608a8a6b40bc2e18348041b646cc.webp"}}]); -//# sourceMappingURL=component---src-pages-products-hotcoin-database-jsx-8f330ba0e34ed5af0ac0.js.map \ No newline at end of file diff --git a/component---src-pages-products-hotcoin-database-jsx-8f330ba0e34ed5af0ac0.js.map b/component---src-pages-products-hotcoin-database-jsx-8f330ba0e34ed5af0ac0.js.map deleted file mode 100644 index 40e0873..0000000 --- a/component---src-pages-products-hotcoin-database-jsx-8f330ba0e34ed5af0ac0.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"component---src-pages-products-hotcoin-database-jsx-8f330ba0e34ed5af0ac0.js","mappings":"oPA2Ce,SAASA,IACtB,MAAM,MAAEC,IAAWC,EAAAA,EAAAA,YAAWC,EAAAA,KACxB,EAAEC,IAAOC,EAAAA,EAAAA,IAAe,YAE9B,OACEC,EAAAA,cAACC,EAAAA,EAAI,CACHC,MAAUJ,EAAE,oBAAmB,MAAMA,EAAE,YACvCK,SAAUL,EAAE,iBAEZE,EAAAA,cAAA,OAAKI,GAAE,SAAWT,EAASU,MAAO,CAAEC,UAAW,SAC7CN,EAAAA,cAAA,QAAMO,UAAU,QACdP,EAAAA,cAACQ,EAAAA,EAAW,CACVC,SAAUX,EAAE,uBACZI,MAAOJ,EAAE,oBACTY,YAAaZ,EAAE,wBAQ3B,C,6GCnDe,SAASU,EAAWG,GAI/B,IAJgC,SAClCF,EAAQ,MAAEP,EAAK,YAAEQ,EAAW,qBAC5BE,EAAoB,eACpBC,GACDF,EACC,MAAM,EAAEb,IAAOC,EAAAA,EAAAA,IAAe,gBACtBe,KAAMC,IAAyBC,EAAAA,EAAAA,IAAS,mBAEhD,OACEhB,EAAAA,cAAA,WAASI,GAAG,gBAAgBG,UAAU,yBACpCP,EAAAA,cAAA,OAAKO,UAAU,aACbP,EAAAA,cAAA,OAAKO,UAAU,OACbP,EAAAA,cAAA,OAAKO,UAAU,8CACbP,EAAAA,cAAA,OAAKO,UAAU,aAAaE,GAAYT,EAAAA,cAAA,YAAOS,IAC/CT,EAAAA,cAAA,MAAIO,UAAU,IAAIL,GAElBF,EAAAA,cAAA,KAAGO,UAAU,QAAQG,GACpBE,GAAwBA,EAEzBZ,EAAAA,cAAA,OAAKO,UAAU,cACbP,EAAAA,cAACiB,EAAAA,EAAY,CACXC,QAAQ,WACRC,KAAK,SACLZ,UAAU,MACVa,QAASL,GACTjB,EAAE,mBAGRE,EAAAA,cAAA,OAAKO,UAAU,qCACbP,EAAAA,cAAA,OAAKO,UAAU,gBACZM,GAEGb,EAAAA,cAAA,OACAqB,IAAKvB,EAAE,iBACPI,MAAOJ,EAAE,iBACTwB,IAAKC,EAAAA,QAQvB,C,uBCzDA,IAAe,IAA0B,mD","sources":["webpack://ivannikov.pro-website/./src/pages/products/hotcoin-database.jsx","webpack://ivannikov.pro-website/./src/screens/ScreenStart.jsx","webpack://ivannikov.pro-website/./src/assets/images/main.webp"],"sourcesContent":["import '../index.scss';\n\nimport React, { useContext, } from 'react';\nimport { useTranslation, } from 'react-i18next';\n\nimport { ThemeContext, } from '../../theme';\nimport Page from '../../components/Page';\nimport ScreenStart from '../../screens/ScreenStart';\n\nimport { ArrowLeftIcon, } from '../../components/Svg';\nimport { Link, } from '../../components/Link';\n\n\n\nconst CodeJson = () => {\n return (\n \n {'{'}
\n   {'\"id\": 4,'}
\n   {'\"name\": \"TON Community\",'}
\n   {'\"slug\": \"toncoin\",'}
\n   {'\"chatId\": 16,'}
\n   {'\"leagueId\": 5,'}
\n   {'\"logo\": \"https://cdn.joincommunity.xyz/custom/photo_2023-08-15_05-02-55.jpg\",'}
\n   {'\"coins\": 2285548632607,'}
\n   {'\"members\": 1884197,'}
\n   {'\"telegramId\": null,'}
\n   {'\"createdAt\": \"2023-09-22T12:49:25.000Z\",'}
\n   {'\"updatedAt\": \"2024-02-22T08:01:51.970Z\",'}
\n   {'\"channel\": {'}
\n     {'\"type\": \"channel\",'}
\n     {'\"title\": \"TON Community\",'}
\n     {'\"description\": \"The Open Network (TON) is putting crypto in every pocket. By building the Web3 ecosystem within Telegram Messenger, TON is giving billions the opportunity to own their digital identity, data, and assets.\",'}
\n     {'\"subscribersOrMembers\": 1309434,'}
\n     {'\"updatedAt\": \"2024-02-22T08:01:52.442Z\"'}
\n   {'},'}
\n   {'\"rateSquad\": 1213009,'}
\n   {'\"rateChannelOrGroup\": 1745447'}
\n {'}'}
\n
\n );\n}\n\nexport default function HotcoinDatabaseProductsPage() {\n const { theme, } = useContext(ThemeContext);\n const { t, } = useTranslation('products');\n\n return (\n \n
\n
\n \n
\n
\n \n );\n}\n","import './ScreenStart.scss';\n\nimport React from 'react';\nimport { useTranslation, } from 'react-i18next';\n\nimport { useModal, } from 'react-simple-modal-provider';\n\nimport CommonButton from '../components/CommonButton';\n\n//import ImageMain from '../assets/images/main.svg';\nimport ImageMain from '../assets/images/main.webp';\n\n\n\nexport default function ScreenStart({\n preTitle, title, description,\n descriptionComponent,\n imageComponent,\n}) {\n const { t, } = useTranslation('translation');\n const { open: openGetInTouchModal, } = useModal('GetInTouchModal');\n\n return (\n
\n
\n
\n
\n
{preTitle && {preTitle}}
\n

{title}

\n\n

{description}

\n {descriptionComponent && descriptionComponent}\n\n
\n {t('Get in Touch')}\n
\n
\n
\n
\n {imageComponent\n ? imageComponent\n : }\n
\n
\n
\n
\n
\n );\n}\n","export default __webpack_public_path__ + \"static/main-ea93608a8a6b40bc2e18348041b646cc.webp\";"],"names":["HotcoinDatabaseProductsPage","theme","useContext","ThemeContext","t","useTranslation","React","Page","title","keywords","id","style","minHeight","className","ScreenStart","preTitle","description","_ref","descriptionComponent","imageComponent","open","openGetInTouchModal","useModal","CommonButton","variant","size","onClick","alt","src","ImageMain"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-products-notcoin-database-jsx-55d91539303f8c546ffd.js b/component---src-pages-products-notcoin-database-jsx-55d91539303f8c546ffd.js new file mode 100644 index 0000000..fceb5c8 --- /dev/null +++ b/component---src-pages-products-notcoin-database-jsx-55d91539303f8c546ffd.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkivannikov_pro_website=self.webpackChunkivannikov_pro_website||[]).push([[896],{5349:function(e,a,t){t.d(a,{$c:function(){return c},Lc:function(){return i},Sv:function(){return s},UA:function(){return n}});var A=t(6540);function n(e){let{className:a}=e,t="gradient-round gradient-round-1";return a&&(t+=" "+a),A.createElement("div",{className:t})}function c(e){let{className:a}=e,t="gradient-round gradient-round-2";return a&&(t+=" "+a),A.createElement("div",{className:t})}function s(e){let{className:a}=e,t="gradient-round gradient-round-blog-1";return a&&(t+=" "+a),A.createElement("div",{className:t})}function i(e){let{className:a}=e,t="gradient-round gradient-round-blog-2";return a&&(t+=" "+a),A.createElement("div",{className:t})}},2099:function(e,a,t){t.d(a,{Xh:function(){return o},zI:function(){return l}});var A=t(6540),n=t(6711),c=t(2635);function s(e){let{className:a,linkTitle:t,linkTo:s}=e,i="";return a&&(i+=" "+a),A.createElement(n.N,{className:i,to:s},A.createElement(c.A6,null),A.createElement("span",null,t))}function i(e){let{className:a,linkTitle:t,linkTo:s}=e,i="";return a&&(i+=" "+a),A.createElement(n.N,{className:i,to:s},A.createElement("span",null,t),A.createElement(c.fl,null))}function l(e){let{className:a,linkTitle:t,linkTo:n}=e,c="back second-page__nav-link";return a&&(c+=" "+a),A.createElement(s,{className:c,linkTitle:t,linkTo:n})}function o(e){let{className:a,previous:t={className:"",title:"",linkTitle:"",linkTo:""},next:n={className:"",title:"",linkTitle:"",linkTo:""}}=e,c="";return a&&" "+a,A.createElement("div",{className:"second-page__nav"},A.createElement("div",{className:"second-page__nav-left second-page__nav-item"},A.createElement("span",{className:"second-page__nav-title"},n.title),A.createElement("div",{className:"second-page__nav-link"},A.createElement(s,{className:t.className,linkTitle:t.linkTitle,linkTo:t.linkTo}))),A.createElement("div",{className:"second-page__nav-right second-page__nav-item"},A.createElement("span",{className:"second-page__nav-title"},n.title),A.createElement("div",{className:"second-page__nav-link"},A.createElement(i,{className:n.className,linkTitle:n.linkTitle,linkTo:n.linkTo}))))}},2292:function(e,a,t){t.r(a),t.d(a,{default:function(){return d}});var A=t(6540),n=t(8865),c=t(2389),s=t(6056),i=t(5349),l=t(2099),o=t(2532);function d(){const{theme:e}=(0,A.useContext)(n.Dx),{t:a}=(0,c.Bd)("products-hotcoin-database");return A.createElement(s.A,{title:a("Notcoin Database")+" - "+a("Products"),description:a("Notcoin Database")+" - "+a("Products"),keywords:a("keywordsList")},A.createElement("main",{id:"blog-post",className:"main"},A.createElement("section",{className:"section-blog"},A.createElement("div",{className:"container"},A.createElement("div",{className:"row"},A.createElement("div",{className:"col-lg-2"},A.createElement(l.zI,{linkTitle:a("To Products Page"),linkTo:"/products/"})),A.createElement("div",{className:"col-12 col-lg-8 content"},A.createElement("figure",null,A.createElement(o.S,{alt:a("Notcoin Database"),title:a("Notcoin Database"),src:"../../assets/images/products/notcoin-database.jpg",placeholder:"blurred",__imageData:t(9834)}),A.createElement(i.Sv,null)),A.createElement("h1",{className:"title"},a("Notcoin Database")),A.createElement("h2",null,a("Notcoin Database")),A.createElement("p",null),A.createElement("h2",null,a("Notcoin Database Squads")),A.createElement("p",null),A.createElement("figure",null,A.createElement(o.S,{alt:a("Notcoin Database Squads"),title:a("Notcoin Database Squads"),src:"../../assets/images/products/notcoin-database-squad.png",placeholder:"blurred",__imageData:t(4136)}),A.createElement(i.Lc,null)),A.createElement("p",null),A.createElement("h2",null,a("Notcoin Database Users")),A.createElement("p",null),A.createElement("figure",null,A.createElement(o.S,{alt:a("Notcoin Database Users"),title:a("Notcoin Database Users"),src:"../../assets/images/products/notcoin-database-user.png",placeholder:"blurred",__imageData:t(957)}),A.createElement(i.Lc,null)),A.createElement("p",null)))))))}},9834:function(e){e.exports=JSON.parse('{"layout":"constrained","placeholder":{"fallback":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAQAF/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAAB3USmP//EABUQAQEAAAAAAAAAAAAAAAAAAAEg/9oACAEBAAEFAgr/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAUEAEAAAAAAAAAAAAAAAAAAAAg/9oACAEBAAY/Al//xAAYEAADAQEAAAAAAAAAAAAAAAAAAREQIf/aAAgBAQABPyFSIiC5N//aAAwDAQACAAMAAAAQMw//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/ED//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/ED//xAAaEAEBAQEBAQEAAAAAAAAAAAABEQAxIVGx/9oACAEBAAE/EBYCivW/upGHnzAQ8MKFtrjmOG//2Q=="},"backgroundColor":"transparent","images":{"fallback":{"src":"/static/6ede597b81510a2f1ff01f356b98c307/67f37/notcoin-database.jpg","srcSet":"/static/6ede597b81510a2f1ff01f356b98c307/91bf0/notcoin-database.jpg 576w,\\n/static/6ede597b81510a2f1ff01f356b98c307/5f600/notcoin-database.jpg 768w,\\n/static/6ede597b81510a2f1ff01f356b98c307/21a6b/notcoin-database.jpg 992w,\\n/static/6ede597b81510a2f1ff01f356b98c307/48077/notcoin-database.jpg 1200w,\\n/static/6ede597b81510a2f1ff01f356b98c307/67f37/notcoin-database.jpg 1280w","sizes":"(min-width: 1280px) 1280px, 100vw"},"sources":[{"srcSet":"/static/6ede597b81510a2f1ff01f356b98c307/2ac95/notcoin-database.webp 576w,\\n/static/6ede597b81510a2f1ff01f356b98c307/aadc9/notcoin-database.webp 768w,\\n/static/6ede597b81510a2f1ff01f356b98c307/97995/notcoin-database.webp 992w,\\n/static/6ede597b81510a2f1ff01f356b98c307/db52b/notcoin-database.webp 1200w,\\n/static/6ede597b81510a2f1ff01f356b98c307/50570/notcoin-database.webp 1280w","type":"image/webp","sizes":"(min-width: 1280px) 1280px, 100vw"}]},"width":1280,"height":836}')},957:function(e){e.exports=JSON.parse('{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAIAAADtbgqsAAAACXBIWXMAAAsTAAALEwEAmpwYAAABGElEQVR42pWR624CIRCF9/2fqn2D+q/+0DZalb2wsMBwGWDo2GhSk6bqyQkZIB9ngM6YBcApuxiwANAPvZzlJKdxGtlcWGfBw62d846LbjD6oKU2drHOx9j+Ff2M0tleq5hSN4ARTocQeMLOOaeEIcVSK92qFF6rEdF44E12t5vntThC8BybEEOMBpy0BlL8TXKgD2ExdtMfXt9X/agilu5tv3lZr0Y1a6X5OobfwFrE/EfPRD6cOwLv19uPlLHj1cihPlbEhqmV3O6Jrmd11Gh/PO1Og3QVsAFSJboDX3VOZvjzS0CiVChmhtsjusBiGIU0MbdSW67tQV1gpRcxacCUC5VnYTmrvTilgu0ZXWD+m1kvRPQs/A3+sL5oDNu1DgAAAABJRU5ErkJggg=="},"backgroundColor":"transparent","images":{"fallback":{"src":"/static/1ac590ebc7ced114e02a57fc23521dfd/7b88d/notcoin-database-user.png","srcSet":"/static/1ac590ebc7ced114e02a57fc23521dfd/68c35/notcoin-database-user.png 576w,\\n/static/1ac590ebc7ced114e02a57fc23521dfd/d8750/notcoin-database-user.png 768w,\\n/static/1ac590ebc7ced114e02a57fc23521dfd/033be/notcoin-database-user.png 992w,\\n/static/1ac590ebc7ced114e02a57fc23521dfd/62f85/notcoin-database-user.png 1200w,\\n/static/1ac590ebc7ced114e02a57fc23521dfd/7b88d/notcoin-database-user.png 2536w","sizes":"(min-width: 2536px) 2536px, 100vw"},"sources":[{"srcSet":"/static/1ac590ebc7ced114e02a57fc23521dfd/247f4/notcoin-database-user.webp 576w,\\n/static/1ac590ebc7ced114e02a57fc23521dfd/b73b1/notcoin-database-user.webp 768w,\\n/static/1ac590ebc7ced114e02a57fc23521dfd/e095f/notcoin-database-user.webp 992w,\\n/static/1ac590ebc7ced114e02a57fc23521dfd/4b97f/notcoin-database-user.webp 1200w,\\n/static/1ac590ebc7ced114e02a57fc23521dfd/b3aa7/notcoin-database-user.webp 2536w","type":"image/webp","sizes":"(min-width: 2536px) 2536px, 100vw"}]},"width":2536,"height":1535}')},4136:function(e){e.exports=JSON.parse('{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAIAAADtbgqsAAAACXBIWXMAAAsTAAALEwEAmpwYAAABTUlEQVR42o2RzU4DMQyE9/1fiRN3xIEDINQiIdHSdrP5jxM7cRavilCLKHTkjeaQbz2aDNa7kKJNwUPMAEqNxhpt9KTVJIeZYoq5gAxSkRETc4qQIMNw8GZjlHbOOB9i6l+af6jWGmIEAPEOkokeiQYFcQSfcymI8lWqYlLOlVs/ERFZa4P3Em8KnvvMPA/v1q4Ou7yASLUiokTSMQCWU1gWLj9NsN5vb58fDpMtxMPd28vN4/2oJ2sspOhEIRBVud3PxdwlIDMngKfVGgkHuRRccL5IYEbkWuf/dAwi59DnvhvVRjtbGrZeaue+TP/ePPdf+QUWZ4zdjspKZ7UCVWyVWpPCZMRz75f2L/BhVB/aRRSSIlKWZhsJVhpJiD/CL/B2t3/dj1Kf+LZkZj42dCHzGeycN9YXbIVkeL5Ox8Jmeb2cSpeHxdwJr4c/AdH2vV2LOPXQAAAAAElFTkSuQmCC"},"backgroundColor":"transparent","images":{"fallback":{"src":"/static/cdb606220befd57b04315f9363570704/af53a/notcoin-database-squad.png","srcSet":"/static/cdb606220befd57b04315f9363570704/fff72/notcoin-database-squad.png 576w,\\n/static/cdb606220befd57b04315f9363570704/572b9/notcoin-database-squad.png 768w,\\n/static/cdb606220befd57b04315f9363570704/f61b3/notcoin-database-squad.png 992w,\\n/static/cdb606220befd57b04315f9363570704/5472c/notcoin-database-squad.png 1200w,\\n/static/cdb606220befd57b04315f9363570704/af53a/notcoin-database-squad.png 2534w","sizes":"(min-width: 2534px) 2534px, 100vw"},"sources":[{"srcSet":"/static/cdb606220befd57b04315f9363570704/3ce4d/notcoin-database-squad.webp 576w,\\n/static/cdb606220befd57b04315f9363570704/9c895/notcoin-database-squad.webp 768w,\\n/static/cdb606220befd57b04315f9363570704/1c13c/notcoin-database-squad.webp 992w,\\n/static/cdb606220befd57b04315f9363570704/d9e7a/notcoin-database-squad.webp 1200w,\\n/static/cdb606220befd57b04315f9363570704/c3ee6/notcoin-database-squad.webp 2534w","type":"image/webp","sizes":"(min-width: 2534px) 2534px, 100vw"}]},"width":2534,"height":1542}')}}]); +//# sourceMappingURL=component---src-pages-products-notcoin-database-jsx-55d91539303f8c546ffd.js.map \ No newline at end of file diff --git a/component---src-pages-products-notcoin-database-jsx-55d91539303f8c546ffd.js.map b/component---src-pages-products-notcoin-database-jsx-55d91539303f8c546ffd.js.map new file mode 100644 index 0000000..e8cd3e3 --- /dev/null +++ b/component---src-pages-products-notcoin-database-jsx-55d91539303f8c546ffd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"component---src-pages-products-notcoin-database-jsx-55d91539303f8c546ffd.js","mappings":"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","sources":["webpack://ivannikov.pro-website/./src/components/elements/GradientRound.jsx","webpack://ivannikov.pro-website/./src/components/elements/NavSecondPage.jsx","webpack://ivannikov.pro-website/./src/pages/products/notcoin-database.jsx"],"sourcesContent":["import './GradientRound.scss';\n\nimport React from 'react';\n\n\n\nexport function GradientRound1({ className, }) {\n let clsName = `gradient-round gradient-round-1`;\n if (className) clsName += ` ${className}`;\n return (
);\n};\n\n\nexport function GradientRound2({ className, }) {\n let clsName = `gradient-round gradient-round-2`;\n if (className) clsName += ` ${className}`;\n return (
);\n};\n\nexport function GradientRoundBlog1({ className, }) {\n let clsName = `gradient-round gradient-round-blog-1`;\n if (className) clsName += ` ${className}`;\n return (
);\n};\n\n\nexport function GradientRoundBlog2({ className, }) {\n let clsName = `gradient-round gradient-round-blog-2`;\n if (className) clsName += ` ${className}`;\n return (
);\n};\n","import \"./NavSecondPage.scss\";\n\nimport React from \"react\";\nimport { Link } from \"../Link\";\nimport { ArrowLeftIcon, ArrowRightIcon } from \"../Svg\";\n\n\n\nexport function NavSecondPagePreviousTo({ className, linkTitle, linkTo, }) {\n let clsName = \"\";\n if (className) clsName += ` ${className}`;\n return (\n \n \n {linkTitle}\n \n );\n};\n\n\nexport function NavSecondPageNextTo({ className, linkTitle, linkTo, }) {\n let clsName = \"\";\n if (className) clsName += ` ${className}`;\n return (\n \n {linkTitle}\n \n \n );\n};\n\n\nexport function NavSecondPageBackTo({ className, linkTitle, linkTo, }) {\n let clsName = \"back second-page__nav-link\";\n if (className) clsName += ` ${className}`;\n return (\n \n );\n};\n\n\nexport function NavSecondPagePreviousNext({\n className,\n previous = { className: \"\", title: \"\", linkTitle: \"\", linkTo: \"\", },\n next = { className: \"\", title: \"\", linkTitle: \"\", linkTo: \"\", },\n}) {\n let clsName = \"\";\n if (className) clsName += ` ${className}`;\n return (\n
\n
\n {next.title}\n
\n \n
\n
\n\n
\n {next.title}\n
\n \n
\n
\n
\n );\n};\n","import \"../section-blog.scss\";\n\nimport React, { useContext, } from 'react';\nimport { ThemeContext, } from '../../theme';\nimport { useTranslation, } from 'react-i18next';\n\nimport Page from \"../../components/Page\";\nimport { GradientRoundBlog1, GradientRoundBlog2 } from \"../../components/elements/GradientRound\";\nimport { NavSecondPageBackTo } from \"../../components/elements/NavSecondPage\";\n\n// https://www.gatsbyjs.com/docs/how-to/images-and-media/using-gatsby-plugin-image/\nimport { StaticImage, } from 'gatsby-plugin-image';\n\n\n\nconst CodeJson = () => {\n return (\n \n {'{'}
\n   {'\"id\": 4,'}
\n   {'\"name\": \"TON Community\",'}
\n   {'\"slug\": \"toncoin\",'}
\n   {'\"chatId\": 16,'}
\n   {'\"leagueId\": 5,'}
\n   {'\"logo\": \"https://cdn.joincommunity.xyz/custom/photo_2023-08-15_05-02-55.jpg\",'}
\n   {'\"coins\": 2285548632607,'}
\n   {'\"members\": 1884197,'}
\n   {'\"telegramId\": null,'}
\n   {'\"createdAt\": \"2023-09-22T12:49:25.000Z\",'}
\n   {'\"updatedAt\": \"2024-02-22T08:01:51.970Z\",'}
\n   {'\"channel\": {'}
\n     {'\"type\": \"channel\",'}
\n     {'\"title\": \"TON Community\",'}
\n     {'\"description\": \"The Open Network (TON) is putting crypto in every pocket. By building the Web3 ecosystem within Telegram Messenger, TON is giving billions the opportunity to own their digital identity, data, and assets.\",'}
\n     {'\"subscribersOrMembers\": 1309434,'}
\n     {'\"updatedAt\": \"2024-02-22T08:01:52.442Z\"'}
\n   {'},'}
\n   {'\"rateSquad\": 1213009,'}
\n   {'\"rateChannelOrGroup\": 1745447'}
\n {'}'}
\n
\n );\n}\n\nexport default function NotcoinDatabaseProductsPage() {\n const { theme, } = useContext(ThemeContext);\n const { t, } = useTranslation('products-hotcoin-database');\n\n return (\n \n
\n
\n
\n
\n
\n \n
\n\n
\n
\n \n \n
\n\n

{t('Notcoin Database')}

\n

{t('Notcoin Database')}

\n

\n\n

{t('Notcoin Database Squads')}

\n

\n
\n \n \n
\n

\n\n\n

{t('Notcoin Database Users')}

\n

\n
\n \n \n
\n

\n
\n
\n
\n
\n
\n \n );\n}\n"],"names":["GradientRound1","_ref","className","clsName","React","GradientRound2","_ref2","GradientRoundBlog1","_ref3","GradientRoundBlog2","_ref4","NavSecondPagePreviousTo","linkTitle","linkTo","Link","to","ArrowLeftIcon","NavSecondPageNextTo","ArrowRightIcon","NavSecondPageBackTo","NavSecondPagePreviousNext","previous","title","next","NotcoinDatabaseProductsPage","theme","useContext","ThemeContext","t","useTranslation","Page","description","keywords","id","StaticImage","alt","src","placeholder","__imageData","require"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-products-notcoin-database-jsx-6942f32a38f26a8abbe8.js b/component---src-pages-products-notcoin-database-jsx-6942f32a38f26a8abbe8.js deleted file mode 100644 index ca9a657..0000000 --- a/component---src-pages-products-notcoin-database-jsx-6942f32a38f26a8abbe8.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkivannikov_pro_website=self.webpackChunkivannikov_pro_website||[]).push([[896],{2292:function(e,t,n){n.r(t),n.d(t,{default:function(){return m}});var l=n(6540),a=n(2389),r=n(8865),c=n(6056),i=n(1550);n(2635),n(6711);const s=()=>l.createElement("code",null,"{",l.createElement("br",null),"  ",'"id": 4,',l.createElement("br",null),"  ",'"name": "TON Community",',l.createElement("br",null),"  ",'"slug": "toncoin",',l.createElement("br",null),"  ",'"chatId": 16,',l.createElement("br",null),"  ",'"leagueId": 5,',l.createElement("br",null),"  ",'"logo": "https://cdn.joincommunity.xyz/custom/photo_2023-08-15_05-02-55.jpg",',l.createElement("br",null),"  ",'"coins": 2285548632607,',l.createElement("br",null),"  ",'"members": 1884197,',l.createElement("br",null),"  ",'"telegramId": null,',l.createElement("br",null),"  ",'"createdAt": "2023-09-22T12:49:25.000Z",',l.createElement("br",null),"  ",'"updatedAt": "2024-02-22T08:01:51.970Z",',l.createElement("br",null),"  ",'"channel": {',l.createElement("br",null),"    ",'"type": "channel",',l.createElement("br",null),"    ",'"title": "TON Community",',l.createElement("br",null),"    ",'"description": "The Open Network (TON) is putting crypto in every pocket. By building the Web3 ecosystem within Telegram Messenger, TON is giving billions the opportunity to own their digital identity, data, and assets.",',l.createElement("br",null),"    ",'"subscribersOrMembers": 1309434,',l.createElement("br",null),"    ",'"updatedAt": "2024-02-22T08:01:52.442Z"',l.createElement("br",null),"  ","},",l.createElement("br",null),"  ",'"rateSquad": 1213009,',l.createElement("br",null),"  ",'"rateChannelOrGroup": 1745447',l.createElement("br",null),"}",l.createElement("br",null));function m(){const{theme:e}=(0,l.useContext)(r.Dx),{t:t}=(0,a.Bd)("products");return l.createElement(c.A,{title:t("Notcoin Database")+" - "+t("Products"),keywords:t("keywordsList")},l.createElement("div",{id:"front "+e,style:{minHeight:"95vh"}},l.createElement("main",{className:"main"},l.createElement(i.A,{preTitle:t("Aleksandr Ivannikov"),title:t("Notcoin Database"),description:t("Notcoin Database")}),l.createElement("section",{id:"product",className:"section section-start"},l.createElement("div",{className:"container"},l.createElement("h2",null,"Record example (JSON format):"),l.createElement(s,null))))))}},1550:function(e,t,n){n.d(t,{A:function(){return s}});var l=n(6540),a=n(2389),r=n(7134),c=n(6348),i=n(6004);function s(e){let{preTitle:t,title:n,description:s,descriptionComponent:m,imageComponent:o}=e;const{t:u}=(0,a.Bd)("translation"),{open:d}=(0,r.hS)("GetInTouchModal");return l.createElement("section",{id:"section-start",className:"section section-start"},l.createElement("div",{className:"container"},l.createElement("div",{className:"row"},l.createElement("div",{className:"col-12 col-md-7 col-lg-6 col-xl-6 relative"},l.createElement("div",{className:"pre-title"},t&&l.createElement("span",null,t)),l.createElement("h1",{className:""},n),l.createElement("p",{className:"desc"},s),m&&m,l.createElement("div",{className:"start-btns"},l.createElement(c.A,{variant:"gradient",size:"static",className:"btn",onClick:d},u("Get in Touch")))),l.createElement("div",{className:"col-12 col-md-5 col-lg-6 col-xl-6"},l.createElement("div",{className:"start__image"},o||l.createElement("img",{alt:u("IVANNIKOV.PRO"),title:u("IVANNIKOV.PRO"),src:i.A}))))))}},6004:function(e,t,n){t.A=n.p+"static/main-ea93608a8a6b40bc2e18348041b646cc.webp"}}]); -//# sourceMappingURL=component---src-pages-products-notcoin-database-jsx-6942f32a38f26a8abbe8.js.map \ No newline at end of file diff --git a/component---src-pages-products-notcoin-database-jsx-6942f32a38f26a8abbe8.js.map b/component---src-pages-products-notcoin-database-jsx-6942f32a38f26a8abbe8.js.map deleted file mode 100644 index 8b96a54..0000000 --- a/component---src-pages-products-notcoin-database-jsx-6942f32a38f26a8abbe8.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"component---src-pages-products-notcoin-database-jsx-6942f32a38f26a8abbe8.js","mappings":"sPAcA,MAAMA,EAAWA,IAEbC,EAAAA,cAAA,YACG,IAAIA,EAAAA,cAAA,WAAM,KACE,WAAWA,EAAAA,cAAA,WAAM,KACjB,2BAA2BA,EAAAA,cAAA,WAAM,KACjC,qBAAqBA,EAAAA,cAAA,WAAM,KAC3B,gBAAgBA,EAAAA,cAAA,WAAM,KACtB,iBAAiBA,EAAAA,cAAA,WAAM,KACvB,gFAAgFA,EAAAA,cAAA,WAAM,KACtF,0BAA0BA,EAAAA,cAAA,WAAM,KAChC,sBAAsBA,EAAAA,cAAA,WAAM,KAC5B,sBAAsBA,EAAAA,cAAA,WAAM,KAC5B,2CAA2CA,EAAAA,cAAA,WAAM,KACjD,2CAA2CA,EAAAA,cAAA,WAAM,KACjD,eAAeA,EAAAA,cAAA,WAAM,OACT,qBAAqBA,EAAAA,cAAA,WAAM,OAC3B,4BAA4BA,EAAAA,cAAA,WAAM,OAClC,gOAAgOA,EAAAA,cAAA,WAAM,OACtO,mCAAmCA,EAAAA,cAAA,WAAM,OACzC,0CAA0CA,EAAAA,cAAA,WAAM,KAC5D,KAAKA,EAAAA,cAAA,WAAM,KACX,wBAAwBA,EAAAA,cAAA,WAAM,KAC9B,gCAAgCA,EAAAA,cAAA,WAC5C,IAAIA,EAAAA,cAAA,YAKI,SAASC,IACtB,MAAM,MAAEC,IAAWC,EAAAA,EAAAA,YAAWC,EAAAA,KACxB,EAAEC,IAAOC,EAAAA,EAAAA,IAAe,YAE9B,OACEN,EAAAA,cAACO,EAAAA,EAAI,CACHC,MAAUH,EAAE,oBAAmB,MAAMA,EAAE,YACvCI,SAAUJ,EAAE,iBAEZL,EAAAA,cAAA,OAAKU,GAAE,SAAWR,EAASS,MAAO,CAAEC,UAAW,SAC7CZ,EAAAA,cAAA,QAAMa,UAAU,QACdb,EAAAA,cAACc,EAAAA,EAAW,CACVC,SAAUV,EAAE,uBACZG,MAAOH,EAAE,oBACTW,YAAaX,EAAE,sBAKjBL,EAAAA,cAAA,WAASU,GAAG,UAAUG,UAAU,yBAC9Bb,EAAAA,cAAA,OAAKa,UAAU,aACbb,EAAAA,cAAA,UAAI,iCACJA,EAAAA,cAACD,EAAQ,UAOvB,C,6GC1De,SAASe,EAAWG,GAI/B,IAJgC,SAClCF,EAAQ,MAAEP,EAAK,YAAEQ,EAAW,qBAC5BE,EAAoB,eACpBC,GACDF,EACC,MAAM,EAAEZ,IAAOC,EAAAA,EAAAA,IAAe,gBACtBc,KAAMC,IAAyBC,EAAAA,EAAAA,IAAS,mBAEhD,OACEtB,EAAAA,cAAA,WAASU,GAAG,gBAAgBG,UAAU,yBACpCb,EAAAA,cAAA,OAAKa,UAAU,aACbb,EAAAA,cAAA,OAAKa,UAAU,OACbb,EAAAA,cAAA,OAAKa,UAAU,8CACbb,EAAAA,cAAA,OAAKa,UAAU,aAAaE,GAAYf,EAAAA,cAAA,YAAOe,IAC/Cf,EAAAA,cAAA,MAAIa,UAAU,IAAIL,GAElBR,EAAAA,cAAA,KAAGa,UAAU,QAAQG,GACpBE,GAAwBA,EAEzBlB,EAAAA,cAAA,OAAKa,UAAU,cACbb,EAAAA,cAACuB,EAAAA,EAAY,CACXC,QAAQ,WACRC,KAAK,SACLZ,UAAU,MACVa,QAASL,GACThB,EAAE,mBAGRL,EAAAA,cAAA,OAAKa,UAAU,qCACbb,EAAAA,cAAA,OAAKa,UAAU,gBACZM,GAEGnB,EAAAA,cAAA,OACA2B,IAAKtB,EAAE,iBACPG,MAAOH,EAAE,iBACTuB,IAAKC,EAAAA,QAQvB,C,uBCzDA,IAAe,IAA0B,mD","sources":["webpack://ivannikov.pro-website/./src/pages/products/notcoin-database.jsx","webpack://ivannikov.pro-website/./src/screens/ScreenStart.jsx","webpack://ivannikov.pro-website/./src/assets/images/main.webp"],"sourcesContent":["import '../index.scss';\n\nimport React, { useContext, } from 'react';\nimport { useTranslation, } from 'react-i18next';\n\nimport { ThemeContext, } from '../../theme';\nimport Page from '../../components/Page';\nimport ScreenStart from '../../screens/ScreenStart';\n\nimport { ArrowLeftIcon, } from '../../components/Svg';\nimport { Link, } from '../../components/Link';\n\n\n\nconst CodeJson = () => {\n return (\n \n {'{'}
\n   {'\"id\": 4,'}
\n   {'\"name\": \"TON Community\",'}
\n   {'\"slug\": \"toncoin\",'}
\n   {'\"chatId\": 16,'}
\n   {'\"leagueId\": 5,'}
\n   {'\"logo\": \"https://cdn.joincommunity.xyz/custom/photo_2023-08-15_05-02-55.jpg\",'}
\n   {'\"coins\": 2285548632607,'}
\n   {'\"members\": 1884197,'}
\n   {'\"telegramId\": null,'}
\n   {'\"createdAt\": \"2023-09-22T12:49:25.000Z\",'}
\n   {'\"updatedAt\": \"2024-02-22T08:01:51.970Z\",'}
\n   {'\"channel\": {'}
\n     {'\"type\": \"channel\",'}
\n     {'\"title\": \"TON Community\",'}
\n     {'\"description\": \"The Open Network (TON) is putting crypto in every pocket. By building the Web3 ecosystem within Telegram Messenger, TON is giving billions the opportunity to own their digital identity, data, and assets.\",'}
\n     {'\"subscribersOrMembers\": 1309434,'}
\n     {'\"updatedAt\": \"2024-02-22T08:01:52.442Z\"'}
\n   {'},'}
\n   {'\"rateSquad\": 1213009,'}
\n   {'\"rateChannelOrGroup\": 1745447'}
\n {'}'}
\n
\n );\n}\n\nexport default function NotcoinDatabaseProductsPage() {\n const { theme, } = useContext(ThemeContext);\n const { t, } = useTranslation('products');\n\n return (\n \n
\n
\n \n\n
\n
\n

Record example (JSON format):

\n \n
\n
\n
\n
\n \n );\n}\n","import './ScreenStart.scss';\n\nimport React from 'react';\nimport { useTranslation, } from 'react-i18next';\n\nimport { useModal, } from 'react-simple-modal-provider';\n\nimport CommonButton from '../components/CommonButton';\n\n//import ImageMain from '../assets/images/main.svg';\nimport ImageMain from '../assets/images/main.webp';\n\n\n\nexport default function ScreenStart({\n preTitle, title, description,\n descriptionComponent,\n imageComponent,\n}) {\n const { t, } = useTranslation('translation');\n const { open: openGetInTouchModal, } = useModal('GetInTouchModal');\n\n return (\n
\n
\n
\n
\n
{preTitle && {preTitle}}
\n

{title}

\n\n

{description}

\n {descriptionComponent && descriptionComponent}\n\n
\n {t('Get in Touch')}\n
\n
\n
\n
\n {imageComponent\n ? imageComponent\n : }\n
\n
\n
\n
\n
\n );\n}\n","export default __webpack_public_path__ + \"static/main-ea93608a8a6b40bc2e18348041b646cc.webp\";"],"names":["CodeJson","React","NotcoinDatabaseProductsPage","theme","useContext","ThemeContext","t","useTranslation","Page","title","keywords","id","style","minHeight","className","ScreenStart","preTitle","description","_ref","descriptionComponent","imageComponent","open","openGetInTouchModal","useModal","CommonButton","variant","size","onClick","alt","src","ImageMain"],"sourceRoot":""} \ No newline at end of file diff --git a/curriculum-vitae/index.html b/curriculum-vitae/index.html index 46c5fb0..006f6f8 100644 --- a/curriculum-vitae/index.html +++ b/curriculum-vitae/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/cv/index.html b/cv/index.html index 994d610..be64f0a 100644 --- a/cv/index.html +++ b/cv/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/index.html b/index.html index 9845964..3fba5cd 100644 --- a/index.html +++ b/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/page-data/app-data.json b/page-data/app-data.json index 960e065..3293a71 100644 --- a/page-data/app-data.json +++ b/page-data/app-data.json @@ -1 +1 @@ -{"webpackCompilationHash":"c4c13fa863fc54e1fe64"} +{"webpackCompilationHash":"b3e6859a511939181f41"} diff --git a/page-data/products/hotcoin-database/page-data.json b/page-data/products/hotcoin-database/page-data.json deleted file mode 100644 index e5dacce..0000000 --- a/page-data/products/hotcoin-database/page-data.json +++ /dev/null @@ -1 +0,0 @@ -{"componentChunkName":"component---src-pages-products-hotcoin-database-jsx","path":"/products/hotcoin-database/","result":{"pageContext":{"locale":"en","hrefLang":"en-US","originalPath":"/products/hotcoin-database/","dateFormat":"MM/DD/YYYY"}},"staticQueryHashes":["1239077767","3280999885"],"slicesMap":{}} \ No newline at end of file diff --git a/page-data/ru/products/hotcoin-database/page-data.json b/page-data/ru/products/hotcoin-database/page-data.json deleted file mode 100644 index 8a733de..0000000 --- a/page-data/ru/products/hotcoin-database/page-data.json +++ /dev/null @@ -1 +0,0 @@ -{"componentChunkName":"component---src-pages-products-hotcoin-database-jsx","path":"/ru/products/hotcoin-database/","result":{"pageContext":{"locale":"ru","hrefLang":"ru-RU","originalPath":"/products/hotcoin-database/","dateFormat":"DD.MM.YYYY"}},"staticQueryHashes":["1239077767","3280999885"],"slicesMap":{}} \ No newline at end of file diff --git a/portfolio/fibonacci-assistant-telegram-bot/index.html b/portfolio/fibonacci-assistant-telegram-bot/index.html index 882f171..40ee492 100644 --- a/portfolio/fibonacci-assistant-telegram-bot/index.html +++ b/portfolio/fibonacci-assistant-telegram-bot/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/portfolio/grabcoinclub-nft/index.html b/portfolio/grabcoinclub-nft/index.html index 86916e6..63196a9 100644 --- a/portfolio/grabcoinclub-nft/index.html +++ b/portfolio/grabcoinclub-nft/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/portfolio/index.html b/portfolio/index.html index bd57e98..ac668b5 100644 --- a/portfolio/index.html +++ b/portfolio/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/portfolio/poolex-ai/index.html b/portfolio/poolex-ai/index.html index 68b34fd..e9b1c31 100644 --- a/portfolio/poolex-ai/index.html +++ b/portfolio/poolex-ai/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/portfolio/roborovski-nft/index.html b/portfolio/roborovski-nft/index.html index d0ce2ba..6af3655 100644 --- a/portfolio/roborovski-nft/index.html +++ b/portfolio/roborovski-nft/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/portfolio/uls-token/index.html b/portfolio/uls-token/index.html index 13d46d9..e87ed3b 100644 --- a/portfolio/uls-token/index.html +++ b/portfolio/uls-token/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/portfolio/world-millionaire-challenge/index.html b/portfolio/world-millionaire-challenge/index.html index 53aa89f..dd0bfce 100644 --- a/portfolio/world-millionaire-challenge/index.html +++ b/portfolio/world-millionaire-challenge/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/privacy/index.html b/privacy/index.html index a85c9b9..c8e26eb 100644 --- a/privacy/index.html +++ b/privacy/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/products/hotcoin-database/index.html b/products/hotcoin-database/index.html deleted file mode 100644 index 9ee7ca2..0000000 --- a/products/hotcoin-database/index.html +++ /dev/null @@ -1,34 +0,0 @@ -Hotcoin Database - Products | IVANNIKOV.PRO - - \ No newline at end of file diff --git a/products/index.html b/products/index.html index 7a4e411..55684f3 100644 --- a/products/index.html +++ b/products/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/products/notcoin-database/index.html b/products/notcoin-database/index.html index 92d769f..22257b7 100644 --- a/products/notcoin-database/index.html +++ b/products/notcoin-database/index.html @@ -1,10 +1,10 @@ -
Aleksandr Ivannikov

Notcoin Database

Notcoin Database

IVANNIKOV.PRO

Record example (JSON format):

{
  "id": 4,
  "name": "TON Community",
  "slug": "toncoin",
  "chatId": 16,
  "leagueId": 5,
  "logo": "https://cdn.joincommunity.xyz/custom/photo_2023-08-15_05-02-55.jpg",
  "coins": 2285548632607,
  "members": 1884197,
  "telegramId": null,
  "createdAt": "2023-09-22T12:49:25.000Z",
  "updatedAt": "2024-02-22T08:01:51.970Z",
  "channel": {
    "type": "channel",
    "title": "TON Community",
    "description": "The Open Network (TON) is putting crypto in every pocket. By building the Web3 ecosystem within Telegram Messenger, TON is giving billions the opportunity to own their digital identity, data, and assets.",
    "subscribersOrMembers": 1309434,
    "updatedAt": "2024-02-22T08:01:52.442Z"
  },
  "rateSquad": 1213009,
  "rateChannelOrGroup": 1745447
}
+
Notcoin Database

Notcoin Database

Notcoin Database

Notcoin Database Squads

Notcoin Database Squads

Notcoin Database Users

Notcoin Database Users

- \ No newline at end of file + \ No newline at end of file diff --git a/projects/index.html b/projects/index.html index 7eda72a..524ef57 100644 --- a/projects/index.html +++ b/projects/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/ru/404.html b/ru/404.html index ef08942..17cc637 100644 --- a/ru/404.html +++ b/ru/404.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/ru/404/index.html b/ru/404/index.html index f8068a3..7b64805 100644 --- a/ru/404/index.html +++ b/ru/404/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/ru/about/index.html b/ru/about/index.html index fa778b3..ff90658 100644 --- a/ru/about/index.html +++ b/ru/about/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/ru/blog/blog-post/index.html b/ru/blog/blog-post/index.html index a4cecfa..d004d17 100644 --- a/ru/blog/blog-post/index.html +++ b/ru/blog/blog-post/index.html @@ -1,10 +1,10 @@ - +
IVANNIKOV.PRO

Title

Sub Title

Text

Text

Text

Sub Title

Text

Text

IVANNIKOV.PRO

Text

Text

Next Title
Next Title
- \ No newline at end of file + \ No newline at end of file diff --git a/ru/blog/index.html b/ru/blog/index.html index c85d265..53430d5 100644 --- a/ru/blog/index.html +++ b/ru/blog/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/ru/curriculum-vitae/index.html b/ru/curriculum-vitae/index.html index 821d045..38c8e8c 100644 --- a/ru/curriculum-vitae/index.html +++ b/ru/curriculum-vitae/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/ru/cv/index.html b/ru/cv/index.html index 02eea47..a865094 100644 --- a/ru/cv/index.html +++ b/ru/cv/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/ru/index.html b/ru/index.html index 5491b80..644a185 100644 --- a/ru/index.html +++ b/ru/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/ru/portfolio/fibonacci-assistant-telegram-bot/index.html b/ru/portfolio/fibonacci-assistant-telegram-bot/index.html index ced89cd..43310c0 100644 --- a/ru/portfolio/fibonacci-assistant-telegram-bot/index.html +++ b/ru/portfolio/fibonacci-assistant-telegram-bot/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/ru/portfolio/grabcoinclub-nft/index.html b/ru/portfolio/grabcoinclub-nft/index.html index dccb528..d334661 100644 --- a/ru/portfolio/grabcoinclub-nft/index.html +++ b/ru/portfolio/grabcoinclub-nft/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/ru/portfolio/index.html b/ru/portfolio/index.html index b8cae0b..3f86d39 100644 --- a/ru/portfolio/index.html +++ b/ru/portfolio/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/ru/portfolio/poolex-ai/index.html b/ru/portfolio/poolex-ai/index.html index 310c56c..d985bd3 100644 --- a/ru/portfolio/poolex-ai/index.html +++ b/ru/portfolio/poolex-ai/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/ru/portfolio/roborovski-nft/index.html b/ru/portfolio/roborovski-nft/index.html index 43fc1f0..cb9cb34 100644 --- a/ru/portfolio/roborovski-nft/index.html +++ b/ru/portfolio/roborovski-nft/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/ru/portfolio/uls-token/index.html b/ru/portfolio/uls-token/index.html index 404a08d..235df81 100644 --- a/ru/portfolio/uls-token/index.html +++ b/ru/portfolio/uls-token/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/ru/portfolio/world-millionaire-challenge/index.html b/ru/portfolio/world-millionaire-challenge/index.html index 6134c21..2393044 100644 --- a/ru/portfolio/world-millionaire-challenge/index.html +++ b/ru/portfolio/world-millionaire-challenge/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/ru/privacy/index.html b/ru/privacy/index.html index 964a8819..7e6f2a5 100644 --- a/ru/privacy/index.html +++ b/ru/privacy/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/ru/products/hotcoin-database/index.html b/ru/products/hotcoin-database/index.html deleted file mode 100644 index c0fc0a1..0000000 --- a/ru/products/hotcoin-database/index.html +++ /dev/null @@ -1,34 +0,0 @@ -Hotcoin Database - Продукты | ИВАННИКОВ.ПРО - - \ No newline at end of file diff --git a/ru/products/index.html b/ru/products/index.html index 0ee4093..ee473b9 100644 --- a/ru/products/index.html +++ b/ru/products/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/ru/products/notcoin-database/index.html b/ru/products/notcoin-database/index.html index c288685..2437439 100644 --- a/ru/products/notcoin-database/index.html +++ b/ru/products/notcoin-database/index.html @@ -1,10 +1,10 @@ -
Александр Иванников

Notcoin Database

Notcoin Database

ИВАННИКОВ.ПРО

Record example (JSON format):

{
  "id": 4,
  "name": "TON Community",
  "slug": "toncoin",
  "chatId": 16,
  "leagueId": 5,
  "logo": "https://cdn.joincommunity.xyz/custom/photo_2023-08-15_05-02-55.jpg",
  "coins": 2285548632607,
  "members": 1884197,
  "telegramId": null,
  "createdAt": "2023-09-22T12:49:25.000Z",
  "updatedAt": "2024-02-22T08:01:51.970Z",
  "channel": {
    "type": "channel",
    "title": "TON Community",
    "description": "The Open Network (TON) is putting crypto in every pocket. By building the Web3 ecosystem within Telegram Messenger, TON is giving billions the opportunity to own their digital identity, data, and assets.",
    "subscribersOrMembers": 1309434,
    "updatedAt": "2024-02-22T08:01:52.442Z"
  },
  "rateSquad": 1213009,
  "rateChannelOrGroup": 1745447
}
+
Notcoin Database

Notcoin Database

Notcoin Database

Notcoin Database Squads

Notcoin Database Squads

Notcoin Database Users

Notcoin Database Users

- \ No newline at end of file + \ No newline at end of file diff --git a/ru/projects/index.html b/ru/projects/index.html index 4b6be1f..7736467 100644 --- a/ru/projects/index.html +++ b/ru/projects/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/ru/services/forks/index.html b/ru/services/forks/index.html index 5b2d927..d09ee98 100644 --- a/ru/services/forks/index.html +++ b/ru/services/forks/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/ru/services/index.html b/ru/services/index.html index aad2610..74ff16e 100644 --- a/ru/services/index.html +++ b/ru/services/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/ru/services/telegram-bots/index.html b/ru/services/telegram-bots/index.html index ebf0abd..f252750 100644 --- a/ru/services/telegram-bots/index.html +++ b/ru/services/telegram-bots/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/ru/terms/index.html b/ru/terms/index.html index 2198922..78f3c20 100644 --- a/ru/terms/index.html +++ b/ru/terms/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/services/forks/index.html b/services/forks/index.html index a39d352..54640c9 100644 --- a/services/forks/index.html +++ b/services/forks/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/services/index.html b/services/index.html index 9f9b6e8..8792158 100644 --- a/services/index.html +++ b/services/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/services/telegram-bots/index.html b/services/telegram-bots/index.html index c56618b..3b97c10 100644 --- a/services/telegram-bots/index.html +++ b/services/telegram-bots/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/sitemap-0.xml b/sitemap-0.xml index 2e7aa3f..357620c 100644 --- a/sitemap-0.xml +++ b/sitemap-0.xml @@ -1 +1 @@ -https://ivannikov.pro/ru/404.htmldaily0.7https://ivannikov.pro/ru/404/daily0.7https://ivannikov.pro/about/daily0.7https://ivannikov.pro/ru/about/daily0.7https://ivannikov.pro/blog/daily0.7https://ivannikov.pro/ru/blog/daily0.7https://ivannikov.pro/curriculum-vitae/daily0.7https://ivannikov.pro/ru/curriculum-vitae/daily0.7https://ivannikov.pro/cv/daily0.7https://ivannikov.pro/ru/cv/daily0.7https://ivannikov.pro/daily0.7https://ivannikov.pro/ru/daily0.7https://ivannikov.pro/portfolio/daily0.7https://ivannikov.pro/ru/portfolio/daily0.7https://ivannikov.pro/privacy/daily0.7https://ivannikov.pro/ru/privacy/daily0.7https://ivannikov.pro/products/daily0.7https://ivannikov.pro/ru/products/daily0.7https://ivannikov.pro/projects/daily0.7https://ivannikov.pro/ru/projects/daily0.7https://ivannikov.pro/services/daily0.7https://ivannikov.pro/ru/services/daily0.7https://ivannikov.pro/terms/daily0.7https://ivannikov.pro/ru/terms/daily0.7https://ivannikov.pro/blog/blog-post/daily0.7https://ivannikov.pro/ru/blog/blog-post/daily0.7https://ivannikov.pro/products/hotcoin-database/daily0.7https://ivannikov.pro/ru/products/hotcoin-database/daily0.7https://ivannikov.pro/products/notcoin-database/daily0.7https://ivannikov.pro/ru/products/notcoin-database/daily0.7https://ivannikov.pro/portfolio/fibonacci-assistant-telegram-bot/daily0.7https://ivannikov.pro/ru/portfolio/fibonacci-assistant-telegram-bot/daily0.7https://ivannikov.pro/portfolio/grabcoinclub-nft/daily0.7https://ivannikov.pro/ru/portfolio/grabcoinclub-nft/daily0.7https://ivannikov.pro/portfolio/poolex-ai/daily0.7https://ivannikov.pro/ru/portfolio/poolex-ai/daily0.7https://ivannikov.pro/portfolio/roborovski-nft/daily0.7https://ivannikov.pro/ru/portfolio/roborovski-nft/daily0.7https://ivannikov.pro/portfolio/uls-token/daily0.7https://ivannikov.pro/ru/portfolio/uls-token/daily0.7https://ivannikov.pro/portfolio/world-millionaire-challenge/daily0.7https://ivannikov.pro/ru/portfolio/world-millionaire-challenge/daily0.7https://ivannikov.pro/services/forks/daily0.7https://ivannikov.pro/ru/services/forks/daily0.7https://ivannikov.pro/services/telegram-bots/daily0.7https://ivannikov.pro/ru/services/telegram-bots/daily0.7 \ No newline at end of file +https://ivannikov.pro/ru/404.htmldaily0.7https://ivannikov.pro/ru/404/daily0.7https://ivannikov.pro/about/daily0.7https://ivannikov.pro/ru/about/daily0.7https://ivannikov.pro/blog/daily0.7https://ivannikov.pro/ru/blog/daily0.7https://ivannikov.pro/curriculum-vitae/daily0.7https://ivannikov.pro/ru/curriculum-vitae/daily0.7https://ivannikov.pro/cv/daily0.7https://ivannikov.pro/ru/cv/daily0.7https://ivannikov.pro/daily0.7https://ivannikov.pro/ru/daily0.7https://ivannikov.pro/portfolio/daily0.7https://ivannikov.pro/ru/portfolio/daily0.7https://ivannikov.pro/privacy/daily0.7https://ivannikov.pro/ru/privacy/daily0.7https://ivannikov.pro/products/daily0.7https://ivannikov.pro/ru/products/daily0.7https://ivannikov.pro/projects/daily0.7https://ivannikov.pro/ru/projects/daily0.7https://ivannikov.pro/services/daily0.7https://ivannikov.pro/ru/services/daily0.7https://ivannikov.pro/terms/daily0.7https://ivannikov.pro/ru/terms/daily0.7https://ivannikov.pro/blog/blog-post/daily0.7https://ivannikov.pro/ru/blog/blog-post/daily0.7https://ivannikov.pro/portfolio/fibonacci-assistant-telegram-bot/daily0.7https://ivannikov.pro/ru/portfolio/fibonacci-assistant-telegram-bot/daily0.7https://ivannikov.pro/portfolio/grabcoinclub-nft/daily0.7https://ivannikov.pro/ru/portfolio/grabcoinclub-nft/daily0.7https://ivannikov.pro/portfolio/poolex-ai/daily0.7https://ivannikov.pro/ru/portfolio/poolex-ai/daily0.7https://ivannikov.pro/portfolio/roborovski-nft/daily0.7https://ivannikov.pro/ru/portfolio/roborovski-nft/daily0.7https://ivannikov.pro/portfolio/uls-token/daily0.7https://ivannikov.pro/ru/portfolio/uls-token/daily0.7https://ivannikov.pro/portfolio/world-millionaire-challenge/daily0.7https://ivannikov.pro/ru/portfolio/world-millionaire-challenge/daily0.7https://ivannikov.pro/products/notcoin-database/daily0.7https://ivannikov.pro/ru/products/notcoin-database/daily0.7https://ivannikov.pro/services/forks/daily0.7https://ivannikov.pro/ru/services/forks/daily0.7https://ivannikov.pro/services/telegram-bots/daily0.7https://ivannikov.pro/ru/services/telegram-bots/daily0.7 \ No newline at end of file diff --git a/static/0e668d7a6c151e1a655f78c63df69b40/14322/blog2.jpg b/static/0e668d7a6c151e1a655f78c63df69b40/14322/blog2.jpg new file mode 100644 index 0000000..92d9bc7 Binary files /dev/null and b/static/0e668d7a6c151e1a655f78c63df69b40/14322/blog2.jpg differ diff --git a/static/0e668d7a6c151e1a655f78c63df69b40/470f1/blog2.webp b/static/0e668d7a6c151e1a655f78c63df69b40/470f1/blog2.webp new file mode 100644 index 0000000..397f79f Binary files /dev/null and b/static/0e668d7a6c151e1a655f78c63df69b40/470f1/blog2.webp differ diff --git a/static/0e668d7a6c151e1a655f78c63df69b40/59191/blog2.webp b/static/0e668d7a6c151e1a655f78c63df69b40/59191/blog2.webp new file mode 100644 index 0000000..7c39794 Binary files /dev/null and b/static/0e668d7a6c151e1a655f78c63df69b40/59191/blog2.webp differ diff --git a/static/0e668d7a6c151e1a655f78c63df69b40/79b41/blog2.webp b/static/0e668d7a6c151e1a655f78c63df69b40/79b41/blog2.webp new file mode 100644 index 0000000..cc70802 Binary files /dev/null and b/static/0e668d7a6c151e1a655f78c63df69b40/79b41/blog2.webp differ diff --git a/static/0e668d7a6c151e1a655f78c63df69b40/7ee67/blog2.jpg b/static/0e668d7a6c151e1a655f78c63df69b40/7ee67/blog2.jpg new file mode 100644 index 0000000..1f4382a Binary files /dev/null and b/static/0e668d7a6c151e1a655f78c63df69b40/7ee67/blog2.jpg differ diff --git a/static/0e668d7a6c151e1a655f78c63df69b40/cca1b/blog2.jpg b/static/0e668d7a6c151e1a655f78c63df69b40/cca1b/blog2.jpg new file mode 100644 index 0000000..689c525 Binary files /dev/null and b/static/0e668d7a6c151e1a655f78c63df69b40/cca1b/blog2.jpg differ diff --git a/static/1ac590ebc7ced114e02a57fc23521dfd/033be/notcoin-database-user.png b/static/1ac590ebc7ced114e02a57fc23521dfd/033be/notcoin-database-user.png new file mode 100644 index 0000000..77da4ec Binary files /dev/null and b/static/1ac590ebc7ced114e02a57fc23521dfd/033be/notcoin-database-user.png differ diff --git a/static/1ac590ebc7ced114e02a57fc23521dfd/247f4/notcoin-database-user.webp b/static/1ac590ebc7ced114e02a57fc23521dfd/247f4/notcoin-database-user.webp new file mode 100644 index 0000000..c206f3f Binary files /dev/null and b/static/1ac590ebc7ced114e02a57fc23521dfd/247f4/notcoin-database-user.webp differ diff --git a/static/1ac590ebc7ced114e02a57fc23521dfd/4b97f/notcoin-database-user.webp b/static/1ac590ebc7ced114e02a57fc23521dfd/4b97f/notcoin-database-user.webp new file mode 100644 index 0000000..2fa04d4 Binary files /dev/null and b/static/1ac590ebc7ced114e02a57fc23521dfd/4b97f/notcoin-database-user.webp differ diff --git a/static/1ac590ebc7ced114e02a57fc23521dfd/62f85/notcoin-database-user.png b/static/1ac590ebc7ced114e02a57fc23521dfd/62f85/notcoin-database-user.png new file mode 100644 index 0000000..9bba08a Binary files /dev/null and b/static/1ac590ebc7ced114e02a57fc23521dfd/62f85/notcoin-database-user.png differ diff --git a/static/1ac590ebc7ced114e02a57fc23521dfd/68c35/notcoin-database-user.png b/static/1ac590ebc7ced114e02a57fc23521dfd/68c35/notcoin-database-user.png new file mode 100644 index 0000000..10e9691 Binary files /dev/null and b/static/1ac590ebc7ced114e02a57fc23521dfd/68c35/notcoin-database-user.png differ diff --git a/static/1ac590ebc7ced114e02a57fc23521dfd/7b88d/notcoin-database-user.png b/static/1ac590ebc7ced114e02a57fc23521dfd/7b88d/notcoin-database-user.png new file mode 100644 index 0000000..41dc8dd Binary files /dev/null and b/static/1ac590ebc7ced114e02a57fc23521dfd/7b88d/notcoin-database-user.png differ diff --git a/static/1ac590ebc7ced114e02a57fc23521dfd/b3aa7/notcoin-database-user.webp b/static/1ac590ebc7ced114e02a57fc23521dfd/b3aa7/notcoin-database-user.webp new file mode 100644 index 0000000..69a408f Binary files /dev/null and b/static/1ac590ebc7ced114e02a57fc23521dfd/b3aa7/notcoin-database-user.webp differ diff --git a/static/1ac590ebc7ced114e02a57fc23521dfd/b73b1/notcoin-database-user.webp b/static/1ac590ebc7ced114e02a57fc23521dfd/b73b1/notcoin-database-user.webp new file mode 100644 index 0000000..075fc54 Binary files /dev/null and b/static/1ac590ebc7ced114e02a57fc23521dfd/b73b1/notcoin-database-user.webp differ diff --git a/static/1ac590ebc7ced114e02a57fc23521dfd/d8750/notcoin-database-user.png b/static/1ac590ebc7ced114e02a57fc23521dfd/d8750/notcoin-database-user.png new file mode 100644 index 0000000..de4c47f Binary files /dev/null and b/static/1ac590ebc7ced114e02a57fc23521dfd/d8750/notcoin-database-user.png differ diff --git a/static/1ac590ebc7ced114e02a57fc23521dfd/e095f/notcoin-database-user.webp b/static/1ac590ebc7ced114e02a57fc23521dfd/e095f/notcoin-database-user.webp new file mode 100644 index 0000000..ea3cc88 Binary files /dev/null and b/static/1ac590ebc7ced114e02a57fc23521dfd/e095f/notcoin-database-user.webp differ diff --git a/static/6ede597b81510a2f1ff01f356b98c307/21a6b/notcoin-database.jpg b/static/6ede597b81510a2f1ff01f356b98c307/21a6b/notcoin-database.jpg new file mode 100644 index 0000000..fc7c71e Binary files /dev/null and b/static/6ede597b81510a2f1ff01f356b98c307/21a6b/notcoin-database.jpg differ diff --git a/static/6ede597b81510a2f1ff01f356b98c307/2ac95/notcoin-database.webp b/static/6ede597b81510a2f1ff01f356b98c307/2ac95/notcoin-database.webp new file mode 100644 index 0000000..778242d Binary files /dev/null and b/static/6ede597b81510a2f1ff01f356b98c307/2ac95/notcoin-database.webp differ diff --git a/static/6ede597b81510a2f1ff01f356b98c307/48077/notcoin-database.jpg b/static/6ede597b81510a2f1ff01f356b98c307/48077/notcoin-database.jpg new file mode 100644 index 0000000..24f818d Binary files /dev/null and b/static/6ede597b81510a2f1ff01f356b98c307/48077/notcoin-database.jpg differ diff --git a/static/6ede597b81510a2f1ff01f356b98c307/50570/notcoin-database.webp b/static/6ede597b81510a2f1ff01f356b98c307/50570/notcoin-database.webp new file mode 100644 index 0000000..3619ffe Binary files /dev/null and b/static/6ede597b81510a2f1ff01f356b98c307/50570/notcoin-database.webp differ diff --git a/static/6ede597b81510a2f1ff01f356b98c307/5f600/notcoin-database.jpg b/static/6ede597b81510a2f1ff01f356b98c307/5f600/notcoin-database.jpg new file mode 100644 index 0000000..a262351 Binary files /dev/null and b/static/6ede597b81510a2f1ff01f356b98c307/5f600/notcoin-database.jpg differ diff --git a/static/6ede597b81510a2f1ff01f356b98c307/67f37/notcoin-database.jpg b/static/6ede597b81510a2f1ff01f356b98c307/67f37/notcoin-database.jpg new file mode 100644 index 0000000..aba30d1 Binary files /dev/null and b/static/6ede597b81510a2f1ff01f356b98c307/67f37/notcoin-database.jpg differ diff --git a/static/6ede597b81510a2f1ff01f356b98c307/91bf0/notcoin-database.jpg b/static/6ede597b81510a2f1ff01f356b98c307/91bf0/notcoin-database.jpg new file mode 100644 index 0000000..948c8c7 Binary files /dev/null and b/static/6ede597b81510a2f1ff01f356b98c307/91bf0/notcoin-database.jpg differ diff --git a/static/6ede597b81510a2f1ff01f356b98c307/97995/notcoin-database.webp b/static/6ede597b81510a2f1ff01f356b98c307/97995/notcoin-database.webp new file mode 100644 index 0000000..2b9e042 Binary files /dev/null and b/static/6ede597b81510a2f1ff01f356b98c307/97995/notcoin-database.webp differ diff --git a/static/6ede597b81510a2f1ff01f356b98c307/aadc9/notcoin-database.webp b/static/6ede597b81510a2f1ff01f356b98c307/aadc9/notcoin-database.webp new file mode 100644 index 0000000..d859b18 Binary files /dev/null and b/static/6ede597b81510a2f1ff01f356b98c307/aadc9/notcoin-database.webp differ diff --git a/static/6ede597b81510a2f1ff01f356b98c307/db52b/notcoin-database.webp b/static/6ede597b81510a2f1ff01f356b98c307/db52b/notcoin-database.webp new file mode 100644 index 0000000..5e79f61 Binary files /dev/null and b/static/6ede597b81510a2f1ff01f356b98c307/db52b/notcoin-database.webp differ diff --git a/static/8d1911f2b702793524d17f178f4e0936/2af1f/blog@2x.jpg b/static/8d1911f2b702793524d17f178f4e0936/2af1f/blog@2x.jpg new file mode 100644 index 0000000..6c24994 Binary files /dev/null and b/static/8d1911f2b702793524d17f178f4e0936/2af1f/blog@2x.jpg differ diff --git a/static/8d1911f2b702793524d17f178f4e0936/4ef98/blog@2x.jpg b/static/8d1911f2b702793524d17f178f4e0936/4ef98/blog@2x.jpg new file mode 100644 index 0000000..86850bb Binary files /dev/null and b/static/8d1911f2b702793524d17f178f4e0936/4ef98/blog@2x.jpg differ diff --git a/static/8d1911f2b702793524d17f178f4e0936/52fd2/blog@2x.jpg b/static/8d1911f2b702793524d17f178f4e0936/52fd2/blog@2x.jpg new file mode 100644 index 0000000..f4a4b97 Binary files /dev/null and b/static/8d1911f2b702793524d17f178f4e0936/52fd2/blog@2x.jpg differ diff --git a/static/8d1911f2b702793524d17f178f4e0936/66d16/blog@2x.webp b/static/8d1911f2b702793524d17f178f4e0936/66d16/blog@2x.webp new file mode 100644 index 0000000..06c9ba1 Binary files /dev/null and b/static/8d1911f2b702793524d17f178f4e0936/66d16/blog@2x.webp differ diff --git a/static/8d1911f2b702793524d17f178f4e0936/7f9b9/blog@2x.jpg b/static/8d1911f2b702793524d17f178f4e0936/7f9b9/blog@2x.jpg new file mode 100644 index 0000000..e91d6f5 Binary files /dev/null and b/static/8d1911f2b702793524d17f178f4e0936/7f9b9/blog@2x.jpg differ diff --git a/static/8d1911f2b702793524d17f178f4e0936/823ad/blog@2x.webp b/static/8d1911f2b702793524d17f178f4e0936/823ad/blog@2x.webp new file mode 100644 index 0000000..c42d36e Binary files /dev/null and b/static/8d1911f2b702793524d17f178f4e0936/823ad/blog@2x.webp differ diff --git a/static/8d1911f2b702793524d17f178f4e0936/c7aae/blog@2x.webp b/static/8d1911f2b702793524d17f178f4e0936/c7aae/blog@2x.webp new file mode 100644 index 0000000..49f61cd Binary files /dev/null and b/static/8d1911f2b702793524d17f178f4e0936/c7aae/blog@2x.webp differ diff --git a/static/8d1911f2b702793524d17f178f4e0936/c89e5/blog@2x.webp b/static/8d1911f2b702793524d17f178f4e0936/c89e5/blog@2x.webp new file mode 100644 index 0000000..8a56e6b Binary files /dev/null and b/static/8d1911f2b702793524d17f178f4e0936/c89e5/blog@2x.webp differ diff --git a/static/8d1911f2b702793524d17f178f4e0936/ce4ce/blog@2x.jpg b/static/8d1911f2b702793524d17f178f4e0936/ce4ce/blog@2x.jpg new file mode 100644 index 0000000..ce743f8 Binary files /dev/null and b/static/8d1911f2b702793524d17f178f4e0936/ce4ce/blog@2x.jpg differ diff --git a/static/8d1911f2b702793524d17f178f4e0936/f743f/blog@2x.webp b/static/8d1911f2b702793524d17f178f4e0936/f743f/blog@2x.webp new file mode 100644 index 0000000..307182d Binary files /dev/null and b/static/8d1911f2b702793524d17f178f4e0936/f743f/blog@2x.webp differ diff --git a/static/blog-d9af30d30e17317df5ec0e8b08fc3934.jpg b/static/blog-d9af30d30e17317df5ec0e8b08fc3934.jpg deleted file mode 100644 index 8ba446b..0000000 Binary files a/static/blog-d9af30d30e17317df5ec0e8b08fc3934.jpg and /dev/null differ diff --git a/static/blog2-abf5b25eeb3ce5de23b3596f8619efdb.jpg b/static/blog2-abf5b25eeb3ce5de23b3596f8619efdb.jpg deleted file mode 100644 index 296a0e6..0000000 Binary files a/static/blog2-abf5b25eeb3ce5de23b3596f8619efdb.jpg and /dev/null differ diff --git a/static/blog@2x-59d7516dab4fa8d1dabe707ed18fe69e.jpg b/static/blog@2x-59d7516dab4fa8d1dabe707ed18fe69e.jpg deleted file mode 100644 index 5e58ec1..0000000 Binary files a/static/blog@2x-59d7516dab4fa8d1dabe707ed18fe69e.jpg and /dev/null differ diff --git a/static/cdb606220befd57b04315f9363570704/1c13c/notcoin-database-squad.webp b/static/cdb606220befd57b04315f9363570704/1c13c/notcoin-database-squad.webp new file mode 100644 index 0000000..63ca73c Binary files /dev/null and b/static/cdb606220befd57b04315f9363570704/1c13c/notcoin-database-squad.webp differ diff --git a/static/cdb606220befd57b04315f9363570704/3ce4d/notcoin-database-squad.webp b/static/cdb606220befd57b04315f9363570704/3ce4d/notcoin-database-squad.webp new file mode 100644 index 0000000..7cd1918 Binary files /dev/null and b/static/cdb606220befd57b04315f9363570704/3ce4d/notcoin-database-squad.webp differ diff --git a/static/cdb606220befd57b04315f9363570704/5472c/notcoin-database-squad.png b/static/cdb606220befd57b04315f9363570704/5472c/notcoin-database-squad.png new file mode 100644 index 0000000..e004f69 Binary files /dev/null and b/static/cdb606220befd57b04315f9363570704/5472c/notcoin-database-squad.png differ diff --git a/static/cdb606220befd57b04315f9363570704/572b9/notcoin-database-squad.png b/static/cdb606220befd57b04315f9363570704/572b9/notcoin-database-squad.png new file mode 100644 index 0000000..62af4ef Binary files /dev/null and b/static/cdb606220befd57b04315f9363570704/572b9/notcoin-database-squad.png differ diff --git a/static/cdb606220befd57b04315f9363570704/9c895/notcoin-database-squad.webp b/static/cdb606220befd57b04315f9363570704/9c895/notcoin-database-squad.webp new file mode 100644 index 0000000..a2c3d8b Binary files /dev/null and b/static/cdb606220befd57b04315f9363570704/9c895/notcoin-database-squad.webp differ diff --git a/static/cdb606220befd57b04315f9363570704/af53a/notcoin-database-squad.png b/static/cdb606220befd57b04315f9363570704/af53a/notcoin-database-squad.png new file mode 100644 index 0000000..3712a0b Binary files /dev/null and b/static/cdb606220befd57b04315f9363570704/af53a/notcoin-database-squad.png differ diff --git a/static/cdb606220befd57b04315f9363570704/c3ee6/notcoin-database-squad.webp b/static/cdb606220befd57b04315f9363570704/c3ee6/notcoin-database-squad.webp new file mode 100644 index 0000000..35a409d Binary files /dev/null and b/static/cdb606220befd57b04315f9363570704/c3ee6/notcoin-database-squad.webp differ diff --git a/static/cdb606220befd57b04315f9363570704/d9e7a/notcoin-database-squad.webp b/static/cdb606220befd57b04315f9363570704/d9e7a/notcoin-database-squad.webp new file mode 100644 index 0000000..27caf7f Binary files /dev/null and b/static/cdb606220befd57b04315f9363570704/d9e7a/notcoin-database-squad.webp differ diff --git a/static/cdb606220befd57b04315f9363570704/f61b3/notcoin-database-squad.png b/static/cdb606220befd57b04315f9363570704/f61b3/notcoin-database-squad.png new file mode 100644 index 0000000..e84b534 Binary files /dev/null and b/static/cdb606220befd57b04315f9363570704/f61b3/notcoin-database-squad.png differ diff --git a/static/cdb606220befd57b04315f9363570704/fff72/notcoin-database-squad.png b/static/cdb606220befd57b04315f9363570704/fff72/notcoin-database-squad.png new file mode 100644 index 0000000..75b3228 Binary files /dev/null and b/static/cdb606220befd57b04315f9363570704/fff72/notcoin-database-squad.png differ diff --git a/styles.39b9c0f790528e4559a0.css b/styles.540ea79c1f11016ba8e3.css similarity index 75% rename from styles.39b9c0f790528e4559a0.css rename to styles.540ea79c1f11016ba8e3.css index b1c5f6b..5663d38 100644 --- a/styles.39b9c0f790528e4559a0.css +++ b/styles.540ea79c1f11016ba8e3.css @@ -4,4 +4,4 @@ * Bootstrap Grid v5.3.3 (https://getbootstrap.com/) * Copyright 2011-2024 The Bootstrap Authors * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;margin-left:auto;margin-right:auto;padding-left:calc(var(--bs-gutter-x)*.5);padding-right:calc(var(--bs-gutter-x)*.5);width:100%}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-left:calc(var(--bs-gutter-x)*-.5);margin-right:calc(var(--bs-gutter-x)*-.5);margin-top:calc(var(--bs-gutter-y)*-1)}.row>*{box-sizing:border-box;flex-shrink:0;margin-top:var(--bs-gutter-y);max-width:100%;padding-left:calc(var(--bs-gutter-x)*.5);padding-right:calc(var(--bs-gutter-x)*.5);width:100%}.col{flex:1 0}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333%}.col-2{flex:0 0 auto;width:16.66667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333%}.col-5{flex:0 0 auto;width:41.66667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333%}.col-8{flex:0 0 auto;width:66.66667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333%}.col-11{flex:0 0 auto;width:91.66667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333%}.offset-2{margin-left:16.66667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333%}.offset-5{margin-left:41.66667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333%}.offset-8{margin-left:66.66667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333%}.offset-11{margin-left:91.66667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:.25rem}.g-1,.gy-1{--bs-gutter-y:.25rem}.g-2,.gx-2{--bs-gutter-x:.5rem}.g-2,.gy-2{--bs-gutter-y:.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333%}.col-sm-2{flex:0 0 auto;width:16.66667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333%}.col-sm-5{flex:0 0 auto;width:41.66667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333%}.col-sm-8{flex:0 0 auto;width:66.66667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333%}.col-sm-11{flex:0 0 auto;width:91.66667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333%}.offset-sm-2{margin-left:16.66667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333%}.offset-sm-5{margin-left:41.66667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333%}.offset-sm-8{margin-left:66.66667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333%}.offset-sm-11{margin-left:91.66667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333%}.col-md-2{flex:0 0 auto;width:16.66667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333%}.col-md-5{flex:0 0 auto;width:41.66667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333%}.col-md-8{flex:0 0 auto;width:66.66667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333%}.col-md-11{flex:0 0 auto;width:91.66667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333%}.offset-md-2{margin-left:16.66667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333%}.offset-md-5{margin-left:41.66667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333%}.offset-md-8{margin-left:66.66667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333%}.offset-md-11{margin-left:91.66667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333%}.col-lg-2{flex:0 0 auto;width:16.66667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333%}.col-lg-5{flex:0 0 auto;width:41.66667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333%}.col-lg-8{flex:0 0 auto;width:66.66667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333%}.col-lg-11{flex:0 0 auto;width:91.66667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333%}.offset-lg-2{margin-left:16.66667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333%}.offset-lg-5{margin-left:41.66667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333%}.offset-lg-8{margin-left:66.66667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333%}.offset-lg-11{margin-left:91.66667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333%}.col-xl-2{flex:0 0 auto;width:16.66667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333%}.col-xl-5{flex:0 0 auto;width:41.66667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333%}.col-xl-8{flex:0 0 auto;width:66.66667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333%}.col-xl-11{flex:0 0 auto;width:91.66667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333%}.offset-xl-2{margin-left:16.66667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333%}.offset-xl-5{margin-left:41.66667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333%}.offset-xl-8{margin-left:66.66667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333%}.offset-xl-11{margin-left:91.66667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333%}.col-xxl-2{flex:0 0 auto;width:16.66667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333%}.col-xxl-5{flex:0 0 auto;width:41.66667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333%}.col-xxl-8{flex:0 0 auto;width:66.66667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333%}.col-xxl-11{flex:0 0 auto;width:91.66667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333%}.offset-xxl-2{margin-left:16.66667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333%}.offset-xxl-5{margin-left:41.66667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333%}.offset-xxl-8{margin-left:66.66667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333%}.offset-xxl-11{margin-left:91.66667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-left:0!important;margin-right:0!important}.mx-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-3{margin-left:1rem!important;margin-right:1rem!important}.mx-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-5{margin-left:3rem!important;margin-right:3rem!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.my-0{margin-bottom:0!important;margin-top:0!important}.my-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-left:0!important;padding-right:0!important}.px-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-3{padding-left:1rem!important;padding-right:1rem!important}.px-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-5{padding-left:3rem!important;padding-right:3rem!important}.py-0{padding-bottom:0!important;padding-top:0!important}.py-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}@media (min-width:576px){.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-left:0!important;margin-right:0!important}.mx-sm-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-sm-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-sm-3{margin-left:1rem!important;margin-right:1rem!important}.mx-sm-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-sm-5{margin-left:3rem!important;margin-right:3rem!important}.mx-sm-auto{margin-left:auto!important;margin-right:auto!important}.my-sm-0{margin-bottom:0!important;margin-top:0!important}.my-sm-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-sm-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-sm-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-sm-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-sm-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-sm-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-left:0!important;padding-right:0!important}.px-sm-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-sm-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-sm-3{padding-left:1rem!important;padding-right:1rem!important}.px-sm-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-sm-5{padding-left:3rem!important;padding-right:3rem!important}.py-sm-0{padding-bottom:0!important;padding-top:0!important}.py-sm-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-sm-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-sm-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-sm-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-sm-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}}@media (min-width:768px){.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-left:0!important;margin-right:0!important}.mx-md-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-md-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-md-3{margin-left:1rem!important;margin-right:1rem!important}.mx-md-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-md-5{margin-left:3rem!important;margin-right:3rem!important}.mx-md-auto{margin-left:auto!important;margin-right:auto!important}.my-md-0{margin-bottom:0!important;margin-top:0!important}.my-md-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-md-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-md-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-md-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-md-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-md-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-left:0!important;padding-right:0!important}.px-md-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-md-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-md-3{padding-left:1rem!important;padding-right:1rem!important}.px-md-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-md-5{padding-left:3rem!important;padding-right:3rem!important}.py-md-0{padding-bottom:0!important;padding-top:0!important}.py-md-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-md-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-md-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-md-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-md-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}}@media (min-width:992px){.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-left:0!important;margin-right:0!important}.mx-lg-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-lg-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-lg-3{margin-left:1rem!important;margin-right:1rem!important}.mx-lg-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-lg-5{margin-left:3rem!important;margin-right:3rem!important}.mx-lg-auto{margin-left:auto!important;margin-right:auto!important}.my-lg-0{margin-bottom:0!important;margin-top:0!important}.my-lg-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-lg-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-lg-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-lg-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-lg-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-lg-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-left:0!important;padding-right:0!important}.px-lg-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-lg-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-lg-3{padding-left:1rem!important;padding-right:1rem!important}.px-lg-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-lg-5{padding-left:3rem!important;padding-right:3rem!important}.py-lg-0{padding-bottom:0!important;padding-top:0!important}.py-lg-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-lg-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-lg-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-lg-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-lg-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}}@media (min-width:1200px){.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-left:0!important;margin-right:0!important}.mx-xl-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-xl-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-xl-3{margin-left:1rem!important;margin-right:1rem!important}.mx-xl-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-xl-5{margin-left:3rem!important;margin-right:3rem!important}.mx-xl-auto{margin-left:auto!important;margin-right:auto!important}.my-xl-0{margin-bottom:0!important;margin-top:0!important}.my-xl-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-xl-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-xl-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-xl-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-xl-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-xl-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-left:0!important;padding-right:0!important}.px-xl-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-xl-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-xl-3{padding-left:1rem!important;padding-right:1rem!important}.px-xl-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-xl-5{padding-left:3rem!important;padding-right:3rem!important}.py-xl-0{padding-bottom:0!important;padding-top:0!important}.py-xl-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-xl-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-xl-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-xl-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-xl-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}}@media (min-width:1400px){.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-left:0!important;margin-right:0!important}.mx-xxl-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-xxl-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-xxl-3{margin-left:1rem!important;margin-right:1rem!important}.mx-xxl-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-xxl-5{margin-left:3rem!important;margin-right:3rem!important}.mx-xxl-auto{margin-left:auto!important;margin-right:auto!important}.my-xxl-0{margin-bottom:0!important;margin-top:0!important}.my-xxl-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-xxl-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-xxl-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-xxl-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-xxl-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-xxl-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-left:0!important;padding-right:0!important}.px-xxl-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-xxl-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-xxl-3{padding-left:1rem!important;padding-right:1rem!important}.px-xxl-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-xxl-5{padding-left:3rem!important;padding-right:3rem!important}.py-xxl-0{padding-bottom:0!important;padding-top:0!important}.py-xxl-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-xxl-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-xxl-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-xxl-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-xxl-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}:root{--toastify-color-light:#fff;--toastify-color-dark:#121212;--toastify-color-info:#3498db;--toastify-color-success:#07bc0c;--toastify-color-warning:#f1c40f;--toastify-color-error:#e74c3c;--toastify-color-transparent:hsla(0,0%,100%,.7);--toastify-icon-color-info:var(--toastify-color-info);--toastify-icon-color-success:var(--toastify-color-success);--toastify-icon-color-warning:var(--toastify-color-warning);--toastify-icon-color-error:var(--toastify-color-error);--toastify-toast-width:320px;--toastify-toast-offset:16px;--toastify-toast-top:max(var(--toastify-toast-offset),env(safe-area-inset-top));--toastify-toast-right:max(var(--toastify-toast-offset),env(safe-area-inset-right));--toastify-toast-left:max(var(--toastify-toast-offset),env(safe-area-inset-left));--toastify-toast-bottom:max(var(--toastify-toast-offset),env(safe-area-inset-bottom));--toastify-toast-background:#fff;--toastify-toast-min-height:64px;--toastify-toast-max-height:800px;--toastify-toast-bd-radius:6px;--toastify-font-family:sans-serif;--toastify-z-index:9999;--toastify-text-color-light:#757575;--toastify-text-color-dark:#fff;--toastify-text-color-info:#fff;--toastify-text-color-success:#fff;--toastify-text-color-warning:#fff;--toastify-text-color-error:#fff;--toastify-spinner-color:#616161;--toastify-spinner-color-empty-area:#e0e0e0;--toastify-color-progress-light:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);--toastify-color-progress-dark:#bb86fc;--toastify-color-progress-info:var(--toastify-color-info);--toastify-color-progress-success:var(--toastify-color-success);--toastify-color-progress-warning:var(--toastify-color-warning);--toastify-color-progress-error:var(--toastify-color-error);--toastify-color-progress-bgo:0.2}.Toastify__toast-container{box-sizing:border-box;color:#fff;padding:4px;position:fixed;-webkit-transform:translateZ(var(--toastify-z-index));width:var(--toastify-toast-width);z-index:var(--toastify-z-index)}.Toastify__toast-container--top-left{left:var(--toastify-toast-left);top:var(--toastify-toast-top)}.Toastify__toast-container--top-center{left:50%;top:var(--toastify-toast-top);transform:translateX(-50%)}.Toastify__toast-container--top-right{right:var(--toastify-toast-right);top:var(--toastify-toast-top)}.Toastify__toast-container--bottom-left{bottom:var(--toastify-toast-bottom);left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{bottom:var(--toastify-toast-bottom);left:50%;transform:translateX(-50%)}.Toastify__toast-container--bottom-right{bottom:var(--toastify-toast-bottom);right:var(--toastify-toast-right)}@media only screen and (max-width:480px){.Toastify__toast-container{left:env(safe-area-inset-left);margin:0;padding:0;width:100vw}.Toastify__toast-container--top-center,.Toastify__toast-container--top-left,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translateX(0)}.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translateX(0)}.Toastify__toast-container--rtl{left:auto;right:env(safe-area-inset-right)}}.Toastify__toast{--y:0;border-radius:var(--toastify-toast-bd-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);box-sizing:border-box;cursor:default;direction:ltr;display:flex;font-family:var(--toastify-font-family);justify-content:space-between;margin-bottom:1rem;max-height:var(--toastify-toast-max-height);min-height:var(--toastify-toast-min-height);overflow:hidden;padding:8px;position:relative;touch-action:none;z-index:0}.Toastify__toast--stacked{position:absolute;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s;width:100%}.Toastify__toast--stacked[data-collapsed] .Toastify__close-button,.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{bottom:100%;content:"";height:calc(var(--g)*1px);left:0;position:absolute;right:0}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{bottom:0;content:"";height:100%;left:0;position:absolute;right:0;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-body{align-items:center;display:flex;flex:1 1 auto;margin:auto 0;padding:6px}.Toastify__toast-body>div:last-child{flex:1 1;word-break:break-word}.Toastify__toast-icon{display:flex;flex-shrink:0;margin-inline-end:10px;width:20px}.Toastify--animate{animation-duration:.5s;animation-fill-mode:both}.Toastify--animate-icon{animation-duration:.3s;animation-fill-mode:both}@media only screen and (max-width:480px){.Toastify__toast{border-radius:0;margin-bottom:0}}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--colored.Toastify__toast--default,.Toastify__toast-theme--light{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{background:var(--toastify-color-info);color:var(--toastify-text-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{background:var(--toastify-color-success);color:var(--toastify-text-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{background:var(--toastify-color-warning);color:var(--toastify-text-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{background:var(--toastify-color-error);color:var(--toastify-text-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning{background:var(--toastify-color-transparent)}.Toastify__close-button{align-self:flex-start;background:transparent;border:none;color:#fff;cursor:pointer;opacity:.7;outline:none;padding:0;transition:.3s ease;z-index:1}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:focus,.Toastify__close-button:hover{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{border-bottom-left-radius:var(--toastify-toast-bd-radius);bottom:0;height:100%;left:0;opacity:.7;position:absolute;transform-origin:left;width:100%;z-index:var(--toastify-z-index)}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{border-bottom-left-radius:0;border-bottom-right-radius:var(--toastify-toast-bd-radius);left:auto;right:0;transform-origin:right}.Toastify__progress-bar--wrp{border-bottom-left-radius:var(--toastify-toast-bd-radius);bottom:0;height:5px;left:0;position:absolute;width:100%}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{height:100%;opacity:var(--toastify-color-progress-bgo);width:100%}.Toastify__spinner{animation:Toastify__spin .65s linear infinite;border:2px solid;border-color:var(--toastify-spinner-color-empty-area);border-radius:100%;border-right-color:var(--toastify-spinner-color);box-sizing:border-box;height:20px;width:20px}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--bottom-left,.Toastify__bounce-enter--top-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--bottom-right,.Toastify__bounce-enter--top-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--bottom-left,.Toastify__bounce-exit--top-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--bottom-right,.Toastify__bounce-exit--top-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{animation-timing-function:ease-in;opacity:0;transform:perspective(400px) rotateX(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px) rotateX(-20deg)}60%{opacity:1;transform:perspective(400px) rotateX(10deg)}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{opacity:1;transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg)}to{opacity:0;transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg)}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(110%,var(--y),0);visibility:hidden}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(-110%,var(--y),0);visibility:hidden}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(0,500px,0);visibility:hidden}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(0,-500px,0);visibility:hidden}}.Toastify__slide-enter--bottom-left,.Toastify__slide-enter--top-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--bottom-right,.Toastify__slide-enter--top-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--bottom-left,.Toastify__slide-exit--top-left{animation-duration:.3s;animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in}.Toastify__slide-exit--bottom-right,.Toastify__slide-exit--top-right{animation-duration:.3s;animation-name:Toastify__slideOutRight;animation-timing-function:ease-in}.Toastify__slide-exit--top-center{animation-duration:.3s;animation-name:Toastify__slideOutUp;animation-timing-function:ease-in}.Toastify__slide-exit--bottom-center{animation-duration:.3s;animation-name:Toastify__slideOutDown;animation-timing-function:ease-in}@keyframes Toastify__spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}[data-aos][data-aos][data-aos-duration="50"],body[data-aos-duration="50"] [data-aos]{transition-duration:50ms}[data-aos][data-aos][data-aos-delay="50"],body[data-aos-delay="50"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="50"].aos-animate,body[data-aos-delay="50"] [data-aos].aos-animate{transition-delay:50ms}[data-aos][data-aos][data-aos-duration="100"],body[data-aos-duration="100"] [data-aos]{transition-duration:.1s}[data-aos][data-aos][data-aos-delay="100"],body[data-aos-delay="100"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="100"].aos-animate,body[data-aos-delay="100"] [data-aos].aos-animate{transition-delay:.1s}[data-aos][data-aos][data-aos-duration="150"],body[data-aos-duration="150"] [data-aos]{transition-duration:.15s}[data-aos][data-aos][data-aos-delay="150"],body[data-aos-delay="150"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="150"].aos-animate,body[data-aos-delay="150"] [data-aos].aos-animate{transition-delay:.15s}[data-aos][data-aos][data-aos-duration="200"],body[data-aos-duration="200"] [data-aos]{transition-duration:.2s}[data-aos][data-aos][data-aos-delay="200"],body[data-aos-delay="200"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="200"].aos-animate,body[data-aos-delay="200"] [data-aos].aos-animate{transition-delay:.2s}[data-aos][data-aos][data-aos-duration="250"],body[data-aos-duration="250"] [data-aos]{transition-duration:.25s}[data-aos][data-aos][data-aos-delay="250"],body[data-aos-delay="250"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="250"].aos-animate,body[data-aos-delay="250"] [data-aos].aos-animate{transition-delay:.25s}[data-aos][data-aos][data-aos-duration="300"],body[data-aos-duration="300"] [data-aos]{transition-duration:.3s}[data-aos][data-aos][data-aos-delay="300"],body[data-aos-delay="300"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="300"].aos-animate,body[data-aos-delay="300"] [data-aos].aos-animate{transition-delay:.3s}[data-aos][data-aos][data-aos-duration="350"],body[data-aos-duration="350"] [data-aos]{transition-duration:.35s}[data-aos][data-aos][data-aos-delay="350"],body[data-aos-delay="350"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="350"].aos-animate,body[data-aos-delay="350"] [data-aos].aos-animate{transition-delay:.35s}[data-aos][data-aos][data-aos-duration="400"],body[data-aos-duration="400"] [data-aos]{transition-duration:.4s}[data-aos][data-aos][data-aos-delay="400"],body[data-aos-delay="400"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="400"].aos-animate,body[data-aos-delay="400"] [data-aos].aos-animate{transition-delay:.4s}[data-aos][data-aos][data-aos-duration="450"],body[data-aos-duration="450"] [data-aos]{transition-duration:.45s}[data-aos][data-aos][data-aos-delay="450"],body[data-aos-delay="450"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="450"].aos-animate,body[data-aos-delay="450"] [data-aos].aos-animate{transition-delay:.45s}[data-aos][data-aos][data-aos-duration="500"],body[data-aos-duration="500"] [data-aos]{transition-duration:.5s}[data-aos][data-aos][data-aos-delay="500"],body[data-aos-delay="500"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="500"].aos-animate,body[data-aos-delay="500"] [data-aos].aos-animate{transition-delay:.5s}[data-aos][data-aos][data-aos-duration="550"],body[data-aos-duration="550"] [data-aos]{transition-duration:.55s}[data-aos][data-aos][data-aos-delay="550"],body[data-aos-delay="550"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="550"].aos-animate,body[data-aos-delay="550"] [data-aos].aos-animate{transition-delay:.55s}[data-aos][data-aos][data-aos-duration="600"],body[data-aos-duration="600"] [data-aos]{transition-duration:.6s}[data-aos][data-aos][data-aos-delay="600"],body[data-aos-delay="600"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="600"].aos-animate,body[data-aos-delay="600"] [data-aos].aos-animate{transition-delay:.6s}[data-aos][data-aos][data-aos-duration="650"],body[data-aos-duration="650"] [data-aos]{transition-duration:.65s}[data-aos][data-aos][data-aos-delay="650"],body[data-aos-delay="650"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="650"].aos-animate,body[data-aos-delay="650"] [data-aos].aos-animate{transition-delay:.65s}[data-aos][data-aos][data-aos-duration="700"],body[data-aos-duration="700"] [data-aos]{transition-duration:.7s}[data-aos][data-aos][data-aos-delay="700"],body[data-aos-delay="700"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="700"].aos-animate,body[data-aos-delay="700"] [data-aos].aos-animate{transition-delay:.7s}[data-aos][data-aos][data-aos-duration="750"],body[data-aos-duration="750"] [data-aos]{transition-duration:.75s}[data-aos][data-aos][data-aos-delay="750"],body[data-aos-delay="750"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="750"].aos-animate,body[data-aos-delay="750"] [data-aos].aos-animate{transition-delay:.75s}[data-aos][data-aos][data-aos-duration="800"],body[data-aos-duration="800"] [data-aos]{transition-duration:.8s}[data-aos][data-aos][data-aos-delay="800"],body[data-aos-delay="800"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="800"].aos-animate,body[data-aos-delay="800"] [data-aos].aos-animate{transition-delay:.8s}[data-aos][data-aos][data-aos-duration="850"],body[data-aos-duration="850"] [data-aos]{transition-duration:.85s}[data-aos][data-aos][data-aos-delay="850"],body[data-aos-delay="850"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="850"].aos-animate,body[data-aos-delay="850"] [data-aos].aos-animate{transition-delay:.85s}[data-aos][data-aos][data-aos-duration="900"],body[data-aos-duration="900"] [data-aos]{transition-duration:.9s}[data-aos][data-aos][data-aos-delay="900"],body[data-aos-delay="900"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="900"].aos-animate,body[data-aos-delay="900"] [data-aos].aos-animate{transition-delay:.9s}[data-aos][data-aos][data-aos-duration="950"],body[data-aos-duration="950"] [data-aos]{transition-duration:.95s}[data-aos][data-aos][data-aos-delay="950"],body[data-aos-delay="950"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="950"].aos-animate,body[data-aos-delay="950"] [data-aos].aos-animate{transition-delay:.95s}[data-aos][data-aos][data-aos-duration="1000"],body[data-aos-duration="1000"] [data-aos]{transition-duration:1s}[data-aos][data-aos][data-aos-delay="1000"],body[data-aos-delay="1000"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1000"].aos-animate,body[data-aos-delay="1000"] [data-aos].aos-animate{transition-delay:1s}[data-aos][data-aos][data-aos-duration="1050"],body[data-aos-duration="1050"] [data-aos]{transition-duration:1.05s}[data-aos][data-aos][data-aos-delay="1050"],body[data-aos-delay="1050"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1050"].aos-animate,body[data-aos-delay="1050"] [data-aos].aos-animate{transition-delay:1.05s}[data-aos][data-aos][data-aos-duration="1100"],body[data-aos-duration="1100"] [data-aos]{transition-duration:1.1s}[data-aos][data-aos][data-aos-delay="1100"],body[data-aos-delay="1100"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1100"].aos-animate,body[data-aos-delay="1100"] [data-aos].aos-animate{transition-delay:1.1s}[data-aos][data-aos][data-aos-duration="1150"],body[data-aos-duration="1150"] [data-aos]{transition-duration:1.15s}[data-aos][data-aos][data-aos-delay="1150"],body[data-aos-delay="1150"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1150"].aos-animate,body[data-aos-delay="1150"] [data-aos].aos-animate{transition-delay:1.15s}[data-aos][data-aos][data-aos-duration="1200"],body[data-aos-duration="1200"] [data-aos]{transition-duration:1.2s}[data-aos][data-aos][data-aos-delay="1200"],body[data-aos-delay="1200"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1200"].aos-animate,body[data-aos-delay="1200"] [data-aos].aos-animate{transition-delay:1.2s}[data-aos][data-aos][data-aos-duration="1250"],body[data-aos-duration="1250"] [data-aos]{transition-duration:1.25s}[data-aos][data-aos][data-aos-delay="1250"],body[data-aos-delay="1250"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1250"].aos-animate,body[data-aos-delay="1250"] [data-aos].aos-animate{transition-delay:1.25s}[data-aos][data-aos][data-aos-duration="1300"],body[data-aos-duration="1300"] [data-aos]{transition-duration:1.3s}[data-aos][data-aos][data-aos-delay="1300"],body[data-aos-delay="1300"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1300"].aos-animate,body[data-aos-delay="1300"] [data-aos].aos-animate{transition-delay:1.3s}[data-aos][data-aos][data-aos-duration="1350"],body[data-aos-duration="1350"] [data-aos]{transition-duration:1.35s}[data-aos][data-aos][data-aos-delay="1350"],body[data-aos-delay="1350"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1350"].aos-animate,body[data-aos-delay="1350"] [data-aos].aos-animate{transition-delay:1.35s}[data-aos][data-aos][data-aos-duration="1400"],body[data-aos-duration="1400"] [data-aos]{transition-duration:1.4s}[data-aos][data-aos][data-aos-delay="1400"],body[data-aos-delay="1400"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1400"].aos-animate,body[data-aos-delay="1400"] [data-aos].aos-animate{transition-delay:1.4s}[data-aos][data-aos][data-aos-duration="1450"],body[data-aos-duration="1450"] [data-aos]{transition-duration:1.45s}[data-aos][data-aos][data-aos-delay="1450"],body[data-aos-delay="1450"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1450"].aos-animate,body[data-aos-delay="1450"] [data-aos].aos-animate{transition-delay:1.45s}[data-aos][data-aos][data-aos-duration="1500"],body[data-aos-duration="1500"] [data-aos]{transition-duration:1.5s}[data-aos][data-aos][data-aos-delay="1500"],body[data-aos-delay="1500"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1500"].aos-animate,body[data-aos-delay="1500"] [data-aos].aos-animate{transition-delay:1.5s}[data-aos][data-aos][data-aos-duration="1550"],body[data-aos-duration="1550"] [data-aos]{transition-duration:1.55s}[data-aos][data-aos][data-aos-delay="1550"],body[data-aos-delay="1550"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1550"].aos-animate,body[data-aos-delay="1550"] [data-aos].aos-animate{transition-delay:1.55s}[data-aos][data-aos][data-aos-duration="1600"],body[data-aos-duration="1600"] [data-aos]{transition-duration:1.6s}[data-aos][data-aos][data-aos-delay="1600"],body[data-aos-delay="1600"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1600"].aos-animate,body[data-aos-delay="1600"] [data-aos].aos-animate{transition-delay:1.6s}[data-aos][data-aos][data-aos-duration="1650"],body[data-aos-duration="1650"] [data-aos]{transition-duration:1.65s}[data-aos][data-aos][data-aos-delay="1650"],body[data-aos-delay="1650"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1650"].aos-animate,body[data-aos-delay="1650"] [data-aos].aos-animate{transition-delay:1.65s}[data-aos][data-aos][data-aos-duration="1700"],body[data-aos-duration="1700"] [data-aos]{transition-duration:1.7s}[data-aos][data-aos][data-aos-delay="1700"],body[data-aos-delay="1700"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1700"].aos-animate,body[data-aos-delay="1700"] [data-aos].aos-animate{transition-delay:1.7s}[data-aos][data-aos][data-aos-duration="1750"],body[data-aos-duration="1750"] [data-aos]{transition-duration:1.75s}[data-aos][data-aos][data-aos-delay="1750"],body[data-aos-delay="1750"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1750"].aos-animate,body[data-aos-delay="1750"] [data-aos].aos-animate{transition-delay:1.75s}[data-aos][data-aos][data-aos-duration="1800"],body[data-aos-duration="1800"] [data-aos]{transition-duration:1.8s}[data-aos][data-aos][data-aos-delay="1800"],body[data-aos-delay="1800"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1800"].aos-animate,body[data-aos-delay="1800"] [data-aos].aos-animate{transition-delay:1.8s}[data-aos][data-aos][data-aos-duration="1850"],body[data-aos-duration="1850"] [data-aos]{transition-duration:1.85s}[data-aos][data-aos][data-aos-delay="1850"],body[data-aos-delay="1850"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1850"].aos-animate,body[data-aos-delay="1850"] [data-aos].aos-animate{transition-delay:1.85s}[data-aos][data-aos][data-aos-duration="1900"],body[data-aos-duration="1900"] [data-aos]{transition-duration:1.9s}[data-aos][data-aos][data-aos-delay="1900"],body[data-aos-delay="1900"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1900"].aos-animate,body[data-aos-delay="1900"] [data-aos].aos-animate{transition-delay:1.9s}[data-aos][data-aos][data-aos-duration="1950"],body[data-aos-duration="1950"] [data-aos]{transition-duration:1.95s}[data-aos][data-aos][data-aos-delay="1950"],body[data-aos-delay="1950"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1950"].aos-animate,body[data-aos-delay="1950"] [data-aos].aos-animate{transition-delay:1.95s}[data-aos][data-aos][data-aos-duration="2000"],body[data-aos-duration="2000"] [data-aos]{transition-duration:2s}[data-aos][data-aos][data-aos-delay="2000"],body[data-aos-delay="2000"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2000"].aos-animate,body[data-aos-delay="2000"] [data-aos].aos-animate{transition-delay:2s}[data-aos][data-aos][data-aos-duration="2050"],body[data-aos-duration="2050"] [data-aos]{transition-duration:2.05s}[data-aos][data-aos][data-aos-delay="2050"],body[data-aos-delay="2050"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2050"].aos-animate,body[data-aos-delay="2050"] [data-aos].aos-animate{transition-delay:2.05s}[data-aos][data-aos][data-aos-duration="2100"],body[data-aos-duration="2100"] [data-aos]{transition-duration:2.1s}[data-aos][data-aos][data-aos-delay="2100"],body[data-aos-delay="2100"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2100"].aos-animate,body[data-aos-delay="2100"] [data-aos].aos-animate{transition-delay:2.1s}[data-aos][data-aos][data-aos-duration="2150"],body[data-aos-duration="2150"] [data-aos]{transition-duration:2.15s}[data-aos][data-aos][data-aos-delay="2150"],body[data-aos-delay="2150"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2150"].aos-animate,body[data-aos-delay="2150"] [data-aos].aos-animate{transition-delay:2.15s}[data-aos][data-aos][data-aos-duration="2200"],body[data-aos-duration="2200"] [data-aos]{transition-duration:2.2s}[data-aos][data-aos][data-aos-delay="2200"],body[data-aos-delay="2200"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2200"].aos-animate,body[data-aos-delay="2200"] [data-aos].aos-animate{transition-delay:2.2s}[data-aos][data-aos][data-aos-duration="2250"],body[data-aos-duration="2250"] [data-aos]{transition-duration:2.25s}[data-aos][data-aos][data-aos-delay="2250"],body[data-aos-delay="2250"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2250"].aos-animate,body[data-aos-delay="2250"] [data-aos].aos-animate{transition-delay:2.25s}[data-aos][data-aos][data-aos-duration="2300"],body[data-aos-duration="2300"] [data-aos]{transition-duration:2.3s}[data-aos][data-aos][data-aos-delay="2300"],body[data-aos-delay="2300"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2300"].aos-animate,body[data-aos-delay="2300"] [data-aos].aos-animate{transition-delay:2.3s}[data-aos][data-aos][data-aos-duration="2350"],body[data-aos-duration="2350"] [data-aos]{transition-duration:2.35s}[data-aos][data-aos][data-aos-delay="2350"],body[data-aos-delay="2350"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2350"].aos-animate,body[data-aos-delay="2350"] [data-aos].aos-animate{transition-delay:2.35s}[data-aos][data-aos][data-aos-duration="2400"],body[data-aos-duration="2400"] [data-aos]{transition-duration:2.4s}[data-aos][data-aos][data-aos-delay="2400"],body[data-aos-delay="2400"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2400"].aos-animate,body[data-aos-delay="2400"] [data-aos].aos-animate{transition-delay:2.4s}[data-aos][data-aos][data-aos-duration="2450"],body[data-aos-duration="2450"] [data-aos]{transition-duration:2.45s}[data-aos][data-aos][data-aos-delay="2450"],body[data-aos-delay="2450"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2450"].aos-animate,body[data-aos-delay="2450"] [data-aos].aos-animate{transition-delay:2.45s}[data-aos][data-aos][data-aos-duration="2500"],body[data-aos-duration="2500"] [data-aos]{transition-duration:2.5s}[data-aos][data-aos][data-aos-delay="2500"],body[data-aos-delay="2500"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2500"].aos-animate,body[data-aos-delay="2500"] [data-aos].aos-animate{transition-delay:2.5s}[data-aos][data-aos][data-aos-duration="2550"],body[data-aos-duration="2550"] [data-aos]{transition-duration:2.55s}[data-aos][data-aos][data-aos-delay="2550"],body[data-aos-delay="2550"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2550"].aos-animate,body[data-aos-delay="2550"] [data-aos].aos-animate{transition-delay:2.55s}[data-aos][data-aos][data-aos-duration="2600"],body[data-aos-duration="2600"] [data-aos]{transition-duration:2.6s}[data-aos][data-aos][data-aos-delay="2600"],body[data-aos-delay="2600"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2600"].aos-animate,body[data-aos-delay="2600"] [data-aos].aos-animate{transition-delay:2.6s}[data-aos][data-aos][data-aos-duration="2650"],body[data-aos-duration="2650"] [data-aos]{transition-duration:2.65s}[data-aos][data-aos][data-aos-delay="2650"],body[data-aos-delay="2650"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2650"].aos-animate,body[data-aos-delay="2650"] [data-aos].aos-animate{transition-delay:2.65s}[data-aos][data-aos][data-aos-duration="2700"],body[data-aos-duration="2700"] [data-aos]{transition-duration:2.7s}[data-aos][data-aos][data-aos-delay="2700"],body[data-aos-delay="2700"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2700"].aos-animate,body[data-aos-delay="2700"] [data-aos].aos-animate{transition-delay:2.7s}[data-aos][data-aos][data-aos-duration="2750"],body[data-aos-duration="2750"] [data-aos]{transition-duration:2.75s}[data-aos][data-aos][data-aos-delay="2750"],body[data-aos-delay="2750"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2750"].aos-animate,body[data-aos-delay="2750"] [data-aos].aos-animate{transition-delay:2.75s}[data-aos][data-aos][data-aos-duration="2800"],body[data-aos-duration="2800"] [data-aos]{transition-duration:2.8s}[data-aos][data-aos][data-aos-delay="2800"],body[data-aos-delay="2800"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2800"].aos-animate,body[data-aos-delay="2800"] [data-aos].aos-animate{transition-delay:2.8s}[data-aos][data-aos][data-aos-duration="2850"],body[data-aos-duration="2850"] [data-aos]{transition-duration:2.85s}[data-aos][data-aos][data-aos-delay="2850"],body[data-aos-delay="2850"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2850"].aos-animate,body[data-aos-delay="2850"] [data-aos].aos-animate{transition-delay:2.85s}[data-aos][data-aos][data-aos-duration="2900"],body[data-aos-duration="2900"] [data-aos]{transition-duration:2.9s}[data-aos][data-aos][data-aos-delay="2900"],body[data-aos-delay="2900"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2900"].aos-animate,body[data-aos-delay="2900"] [data-aos].aos-animate{transition-delay:2.9s}[data-aos][data-aos][data-aos-duration="2950"],body[data-aos-duration="2950"] [data-aos]{transition-duration:2.95s}[data-aos][data-aos][data-aos-delay="2950"],body[data-aos-delay="2950"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2950"].aos-animate,body[data-aos-delay="2950"] [data-aos].aos-animate{transition-delay:2.95s}[data-aos][data-aos][data-aos-duration="3000"],body[data-aos-duration="3000"] [data-aos]{transition-duration:3s}[data-aos][data-aos][data-aos-delay="3000"],body[data-aos-delay="3000"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="3000"].aos-animate,body[data-aos-delay="3000"] [data-aos].aos-animate{transition-delay:3s}[data-aos][data-aos][data-aos-easing=linear],body[data-aos-easing=linear] [data-aos]{transition-timing-function:cubic-bezier(.25,.25,.75,.75)}[data-aos][data-aos][data-aos-easing=ease],body[data-aos-easing=ease] [data-aos]{transition-timing-function:ease}[data-aos][data-aos][data-aos-easing=ease-in],body[data-aos-easing=ease-in] [data-aos]{transition-timing-function:ease-in}[data-aos][data-aos][data-aos-easing=ease-out],body[data-aos-easing=ease-out] [data-aos]{transition-timing-function:ease-out}[data-aos][data-aos][data-aos-easing=ease-in-out],body[data-aos-easing=ease-in-out] [data-aos]{transition-timing-function:ease-in-out}[data-aos][data-aos][data-aos-easing=ease-in-back],body[data-aos-easing=ease-in-back] [data-aos]{transition-timing-function:cubic-bezier(.6,-.28,.735,.045)}[data-aos][data-aos][data-aos-easing=ease-out-back],body[data-aos-easing=ease-out-back] [data-aos]{transition-timing-function:cubic-bezier(.175,.885,.32,1.275)}[data-aos][data-aos][data-aos-easing=ease-in-out-back],body[data-aos-easing=ease-in-out-back] [data-aos]{transition-timing-function:cubic-bezier(.68,-.55,.265,1.55)}[data-aos][data-aos][data-aos-easing=ease-in-sine],body[data-aos-easing=ease-in-sine] [data-aos]{transition-timing-function:cubic-bezier(.47,0,.745,.715)}[data-aos][data-aos][data-aos-easing=ease-out-sine],body[data-aos-easing=ease-out-sine] [data-aos]{transition-timing-function:cubic-bezier(.39,.575,.565,1)}[data-aos][data-aos][data-aos-easing=ease-in-out-sine],body[data-aos-easing=ease-in-out-sine] [data-aos]{transition-timing-function:cubic-bezier(.445,.05,.55,.95)}[data-aos][data-aos][data-aos-easing=ease-in-quad],body[data-aos-easing=ease-in-quad] [data-aos]{transition-timing-function:cubic-bezier(.55,.085,.68,.53)}[data-aos][data-aos][data-aos-easing=ease-out-quad],body[data-aos-easing=ease-out-quad] [data-aos]{transition-timing-function:cubic-bezier(.25,.46,.45,.94)}[data-aos][data-aos][data-aos-easing=ease-in-out-quad],body[data-aos-easing=ease-in-out-quad] [data-aos]{transition-timing-function:cubic-bezier(.455,.03,.515,.955)}[data-aos][data-aos][data-aos-easing=ease-in-cubic],body[data-aos-easing=ease-in-cubic] [data-aos]{transition-timing-function:cubic-bezier(.55,.085,.68,.53)}[data-aos][data-aos][data-aos-easing=ease-out-cubic],body[data-aos-easing=ease-out-cubic] [data-aos]{transition-timing-function:cubic-bezier(.25,.46,.45,.94)}[data-aos][data-aos][data-aos-easing=ease-in-out-cubic],body[data-aos-easing=ease-in-out-cubic] [data-aos]{transition-timing-function:cubic-bezier(.455,.03,.515,.955)}[data-aos][data-aos][data-aos-easing=ease-in-quart],body[data-aos-easing=ease-in-quart] [data-aos]{transition-timing-function:cubic-bezier(.55,.085,.68,.53)}[data-aos][data-aos][data-aos-easing=ease-out-quart],body[data-aos-easing=ease-out-quart] [data-aos]{transition-timing-function:cubic-bezier(.25,.46,.45,.94)}[data-aos][data-aos][data-aos-easing=ease-in-out-quart],body[data-aos-easing=ease-in-out-quart] [data-aos]{transition-timing-function:cubic-bezier(.455,.03,.515,.955)}[data-aos^=fade][data-aos^=fade]{opacity:0;transition-property:opacity,transform}[data-aos^=fade][data-aos^=fade].aos-animate{opacity:1;transform:translateZ(0)}[data-aos=fade-up]{transform:translate3d(0,100px,0)}[data-aos=fade-down]{transform:translate3d(0,-100px,0)}[data-aos=fade-right]{transform:translate3d(-100px,0,0)}[data-aos=fade-left]{transform:translate3d(100px,0,0)}[data-aos=fade-up-right]{transform:translate3d(-100px,100px,0)}[data-aos=fade-up-left]{transform:translate3d(100px,100px,0)}[data-aos=fade-down-right]{transform:translate3d(-100px,-100px,0)}[data-aos=fade-down-left]{transform:translate3d(100px,-100px,0)}[data-aos^=zoom][data-aos^=zoom]{opacity:0;transition-property:opacity,transform}[data-aos^=zoom][data-aos^=zoom].aos-animate{opacity:1;transform:translateZ(0) scale(1)}[data-aos=zoom-in]{transform:scale(.6)}[data-aos=zoom-in-up]{transform:translate3d(0,100px,0) scale(.6)}[data-aos=zoom-in-down]{transform:translate3d(0,-100px,0) scale(.6)}[data-aos=zoom-in-right]{transform:translate3d(-100px,0,0) scale(.6)}[data-aos=zoom-in-left]{transform:translate3d(100px,0,0) scale(.6)}[data-aos=zoom-out]{transform:scale(1.2)}[data-aos=zoom-out-up]{transform:translate3d(0,100px,0) scale(1.2)}[data-aos=zoom-out-down]{transform:translate3d(0,-100px,0) scale(1.2)}[data-aos=zoom-out-right]{transform:translate3d(-100px,0,0) scale(1.2)}[data-aos=zoom-out-left]{transform:translate3d(100px,0,0) scale(1.2)}[data-aos^=slide][data-aos^=slide]{transition-property:transform}[data-aos^=slide][data-aos^=slide].aos-animate{transform:translateZ(0)}[data-aos=slide-up]{transform:translate3d(0,100%,0)}[data-aos=slide-down]{transform:translate3d(0,-100%,0)}[data-aos=slide-right]{transform:translate3d(-100%,0,0)}[data-aos=slide-left]{transform:translate3d(100%,0,0)}[data-aos^=flip][data-aos^=flip]{-webkit-backface-visibility:hidden;backface-visibility:hidden;transition-property:transform}[data-aos=flip-left]{transform:perspective(2500px) rotateY(-100deg)}[data-aos=flip-left].aos-animate{transform:perspective(2500px) rotateY(0)}[data-aos=flip-right]{transform:perspective(2500px) rotateY(100deg)}[data-aos=flip-right].aos-animate{transform:perspective(2500px) rotateY(0)}[data-aos=flip-up]{transform:perspective(2500px) rotateX(-100deg)}[data-aos=flip-up].aos-animate{transform:perspective(2500px) rotateX(0)}[data-aos=flip-down]{transform:perspective(2500px) rotateX(100deg)}[data-aos=flip-down].aos-animate{transform:perspective(2500px) rotateX(0)}*{border:0;margin:0;padding:0}*,:after,:before{box-sizing:border-box}#app,body,html{font-size:100%;height:100%;width:100%}#app:active,#app:focus,a:active,a:focus,body:active,body:focus,html:active,html:focus{outline:none}a,a:hover,a:visited{color:inherit;text-decoration:none!important}aside,footer,header,nav{display:block}button,input,textarea{font-family:inherit}input::-ms-clear{display:none}button{cursor:pointer}ul li{list-style:none}img{vertical-align:top}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{padding-left:1.5rem;padding-right:1.5rem;width:100%}.container{margin:0 auto;max-width:1360px}@media (max-width:1400px){.container{max-width:1200px}}@media (max-width:1200px){.container{max-width:1000px}}@media (max-width:922px){.container{max-width:750px}}@media (max-width:767px){.container{margin:0;max-width:none}}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{padding-left:1.5rem;padding-right:1.5rem}.row{margin-left:-1.5rem;margin-right:-1.5rem}html{font-size:62.5%}body{font-feature-settings:normal;font-smooth:auto;font-family:Montserrat,sans-serif;font-size:1.6rem;font-variant:normal;font-weight:500;letter-spacing:normal;line-height:2.4rem;margin:0;overflow-x:hidden;position:relative;transition:background-color .1s ease-out}.theapp{background:#1e1e20;transition:background .3s}.theapp.page_theme_light{background:#f3f3fb}img.lazy{opacity:0;transition:all .3s ease-out}img.lazy[lazy=loaded]{opacity:1}.title{color:#fff;font-family:Druk Cyr;font-size:4.8rem;font-weight:900;letter-spacing:.08em;line-height:6rem;margin-bottom:1.6rem;text-transform:uppercase}.desc{color:hsla(0,0%,100%,.6);font-size:1.6rem;font-weight:500;letter-spacing:normal;line-height:1.5em;margin-bottom:4rem}.back{-webkit-text-fill-color:transparent;text-fill-color:transparent;background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);-webkit-background-clip:text;background-clip:text;display:inline-flex;transition:all .3s ease-out}.back:hover{letter-spacing:.1rem}.back img{margin-right:1.2rem}body.body-overflow{overflow:hidden}.pre-title{margin:0 0 1.6rem}@media (max-width:991px){.pre-title{margin:0 0 1.2rem}}.pre-title span{background:#27273e;border-radius:1.2rem;box-shadow:0 0 1px rgba(20,16,41,.4),0 2px 4px -1px rgba(20,16,41,.24),0 8px 8px -4px rgba(20,16,41,.24);color:#fff;display:inline-flex;font-size:1.6rem;font-weight:700;letter-spacing:normal;line-height:1.2em;padding:.6rem 1.2rem}@media (max-width:991px){.pre-title span{background:rgba(224,224,255,.02);box-shadow:none;color:#fff;font-size:1.2rem;font-weight:500;letter-spacing:normal;line-height:1.6em;padding:1.2rem 2.4rem}}.page_theme_light .theapp{background:#f3f3fb;transition:background .3s}.page_theme_light .title{color:#282a2e}.page_theme_light .desc{color:rgba(40,42,46,.6)}.page_theme_light .pre-title span{background:hsla(0,0%,100%,.92);box-shadow:none;color:#282a2e}@media (max-width:991px){.page_theme_light .pre-title span{background:hsla(0,0%,100%,.92);box-shadow:none;color:#282a2e}}.f-input{background:transparent;background:#1e1e20;border-radius:1rem;color:#fff;display:block;font-size:1.6rem;font-weight:500;letter-spacing:normal;line-height:2.4rem;padding:1.2em 2rem;transition:all .3s ease-out;width:100%}.f-input__border{background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);border-radius:1.2rem;padding:2px;width:100%}.f-input:focus{outline:none}.f-input::placeholder{color:hsla(0,0%,100%,.68)}.f-input__error{dispaly:block;color:red;font-size:1.3rem;font-weight:500;letter-spacing:normal;line-height:1.23em;padding-top:.8rem;position:relative;transition:all .3s ease-out}.f-input__wrapper{align-items:flex-start;display:flex;flex-direction:column;margin-bottom:2.4rem;position:relative}.f-input__label{color:hsla(0,0%,100%,.68);display:block;font-size:1.6rem;font-weight:500;letter-spacing:normal;line-height:2rem;margin-bottom:.8rem}.page_theme_light .f-input{background:#fff;color:#282a2e;transition:all .3s ease-out}.page_theme_light .f-input::placeholder{color:rgba(40,42,46,.4)}.page_theme_light .f-input:focus{outline:none}.page_theme_light .f-input__label{color:rgba(40,42,46,.68)}.content h1{color:#fff;font-size:4.8rem;font-weight:1000;letter-spacing:.08em;line-height:6rem;margin:0 0 2rem}.content h2,.content h3,.content h4,.content h5,.content h6{color:#fff;font-size:2rem;font-weight:700;letter-spacing:normal;line-height:2.8rem;margin:1.2rem 0 1.6rem}.content ol,.content p,.content ul{color:hsla(0,0%,100%,.68);font-size:1.4remx;font-weight:500;letter-spacing:normal;line-height:2.4rem;margin-bottom:3.6rem;position:relative;z-index:5}.content ol{list-style-type:decimal;margin-left:20px}.content figure{display:block;margin:1.2rem 0 4.8rem;position:relative}.content figure img{border-radius:2.4rem;height:auto!important;max-width:100%!important;position:relative;width:100%!important;z-index:10}@media (max-width:991px){.content figure img{border-radius:1.2rem}}.content figure figcaption{color:hsla(0,0%,100%,.68);display:block;font-size:1.4remx;font-weight:500;letter-spacing:normal;line-height:2.4rem;margin-top:8px;text-align:center;width:100%}.content li{margin-bottom:3.2rem;position:relative}.content li:last-child{margin-bottom:0}.content ol,.content ul{margin-bottom:4.8rem}.content ul li{padding-left:3rem}.content ul li:after{background-color:hsla(0,0%,100%,.68);border-radius:50%;content:" ";display:block;height:8px;left:4px;position:absolute;top:8px;width:8px}.content ul.list li:after{background-color:hsla(0,0%,100%,.68);height:10px;width:14px}.page_theme_light .content h1,.page_theme_light .content h2,.page_theme_light .content h3,.page_theme_light .content h4,.page_theme_light .content h5,.page_theme_light .content h6{color:#282a2e}.page_theme_light .content figure figcaption,.page_theme_light .content ol,.page_theme_light .content p,.page_theme_light .content ul{color:rgba(40,42,46,.68)}.page_theme_light .content ul li:after,.page_theme_light .content ul.list li:after{background-color:rgba(40,42,46,.68)}.main{display:block;overflow:hidden}.main,.theapp{position:relative}.theapp{display:flex;flex-direction:column;min-height:100%}.theapp footer{margin-top:auto}#app{font-family:Montserrat,sans-serif}.no-scroll{height:100vh!important;overflow-y:hidden}.page_theme_dark .content-base{background-color:#1e1e20!important;color:#fff}.page_theme_light .content-base{background-color:#f3f3fb!important;color:#282a2e}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format("woff2");unicode-range:u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format("woff2");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format("woff2");unicode-range:u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format("woff2");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format("woff2");unicode-range:u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format("woff2");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format("woff2");unicode-range:u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format("woff2");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format("woff2");unicode-range:u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format("woff2");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Druk Cyr;font-style:normal;font-weight:900;src:local("Druk Cyr Heavy"),local("Druk-Cyr-Heavy"),url(/static/DrukCyr-Heavy-dbe98c3c47c45d1ed488952e7008eaf5.woff2) format("woff2"),url(/static/DrukCyr-Heavy-3e3707cb025e23fc8dfc4ad93ec08ee3.woff) format("woff"),url(/static/DrukCyr-Heavy-a894eb7ec19868f184d7b33b0d74d558.ttf) format("truetype")}.logo{margin-right:4.8rem}@media (max-width:1200px){.logo{margin-right:2.4rem}}.mobile__action{align-items:center;display:flex;height:4rem;justify-content:center;width:4rem}.nav a{color:#fff;display:inline-block;font-size:1.4rem;font-weight:600;letter-spacing:normal;line-height:2.4em;transition:all .3s ease-out}.nav a,.nav a:hover{opacity:.68}.nav a.router-link-exact-active{opacity:1}.nav a:not(:last-child){margin-right:4.8rem}@media (max-width:1200px){.nav a:not(:last-child){margin-right:2.4rem}}.header{-webkit-backdrop-filter:blur(108.731px);backdrop-filter:blur(108.731px);background:linear-gradient(135deg,rgba(245,247,250,.12),rgba(245,247,250,.06) 52.14%,rgba(245,247,250,0));border:1px solid rgba(245,247,250,.06);box-shadow:0 1px 1px rgba(9,13,20,.4),-4px -4px 8px rgba(224,224,255,.04);box-sizing:border-box;left:0;padding:2.6rem 0 2.1rem;position:fixed;top:0;width:100%;z-index:300}@media (max-width:991px){.header{padding:.8rem 0}}.header__soc{gap:0 .8rem}.page_theme_light .header{-webkit-backdrop-filter:blur(108.731px);backdrop-filter:blur(108.731px);background:linear-gradient(135deg,rgba(245,247,250,.12),rgba(245,247,250,.06) 52.14%,rgba(245,247,250,0));border:1px solid rgba(245,247,250,.06);box-shadow:0 1px 1px hsla(0,0%,100%,.4),-4px -4px 8px hsla(0,0%,100%,.04)}.page_theme_light .nav a{color:#282a2e}.logo{align-items:center;color:#fff;display:flex;font-size:1.6rem;font-weight:700;justify-content:flex-start;letter-spacing:normal;line-height:2.4rem;text-transform:uppercase}.logo span{color:#fff;padding-left:1.2rem}.page_theme_light .logo,.page_theme_light .logo span{color:#282a2e}.soc{display:flex;justify-content:space-between}.soc,.soc a{align-items:center}.soc a{background:hsla(0,0%,100%,.06);border-radius:50%;display:inline-flex;height:2.8rem;justify-content:center;min-width:2.8rem;transition:all .3s ease-out;width:2.8rem}.soc a path{fill:#fff}.soc a:hover{background:hsla(0,0%,100%,.12)}.page_theme_light .soc a{background:rgba(40,42,46,.06)}.page_theme_light .soc a path{fill:#282a2e!important}.page_theme_light .soc a:hover{background:rgba(40,42,46,.12)}.theme__switcher{background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);border-radius:60px;height:40px;padding:1px;position:relative;width:68px}.theme__switcher-inner{align-items:center;background:#1e1e20;border-radius:6rem;color:#fff;cursor:pointer;display:flex;height:100%;justify-content:space-between;padding:0 .4rem;position:relative}.theme__switcher-overlay{border-radius:6rem;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;z-index:10}.theme__switcher-icon{align-items:center;border-radius:50%;display:flex;height:2.8rem;justify-content:center;min-width:2.8rem;width:2.8rem}.theme__switcher-icon-active{background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);box-shadow:0 1px 0 #df6a83,0 3px 5px rgba(0,0,0,.13),0 4px 10px rgba(253,53,71,.38)}.page_theme_light .theme__switcher-inner{background:#fff}.page_theme_light .theme__switcher-icon path{fill:#231f20}.page_theme_light .theme__switcher-icon-active path{fill:#fff}.lang{display:inline-block;position:relative}.lang__switcher{background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);border-radius:6rem;height:4rem;padding:1px;position:relative;width:10rem}.lang__switcher-active .lang__switcher-icon{transform:rotate(180deg)}.lang__switcher-inner{align-items:center;background:#1e1e20;border-radius:6rem;color:#fff;cursor:pointer;display:flex;height:100%;justify-content:center;padding:0 .4rem;position:relative}.lang__switcher-text{padding:0 .8rem}.lang__switcher-icon{transition:all .3s ease-out}.lang__switcher-flag img{border-radius:.2rem}.lang__switcher-flag,.lang__switcher-icon{align-items:center;display:flex;height:2.8rem;justify-content:center}.lang__drop{background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);border-radius:2.4rem;padding:.1rem;position:absolute;top:100%;width:10rem}.lang__drop-inner{background:#1e1e20;border-radius:2.4rem;color:#fff;cursor:pointer;display:flex;flex-direction:column;padding:1.2rem 0;position:relative}.lang__drop-line{align-items:center;display:flex;justify-content:flex-start;padding:.4rem 1.3rem}.page_theme_light .lang__switcher-inner{background:#fff;color:#231f20}.page_theme_light .lang__switcher-icon path{fill:#231f20}.page_theme_light .lang__drop-inner{background:#fff;color:#231f20}.mobilemenu{align-items:center;background:#1e1e20 url(/static/bg-mobile-dark-d5b532d922b719174fbd7bf381a7de3d.png) no-repeat 40% 0;bottom:0;display:flex;flex-direction:column;height:100vh;left:0;min-height:100vh;padding-top:8rem;position:fixed;right:0;top:0;width:100%;z-index:250}.mobilemenu__soc{background:rgba(224,224,255,.06);border-radius:4rem;gap:0 1.2rem;margin:2rem;padding:1.6rem}.mobilemenu__nav{align-items:center;color:#fff;display:flex;flex-direction:column;flex-grow:1;justify-content:center}.mobilemenu__nav a:not(:last-child){margin-bottom:4rem}.mobilemenu__langs .lang__drop{bottom:100%;top:auto}.page_theme_light .mobilemenu{background:#fff url(/static/bg-mobile-light-aa8b73050384acf27286b888f3864cf4.png) no-repeat 40% 0}.page_theme_light .mobilemenu__soc{background:rgba(40,42,46,.06)}.page_theme_light .mobilemenu__nav a{color:#282a2e}.footer{padding:0 0 2.2rem}@media (max-width:991px){.footer{padding-bottom:3.2rem}}.footer-line{border:1px solid #fff;margin:0 0 2.2rem;opacity:.1}@media (max-width:991px){.footer-line{margin-bottom:3.2rem}.footer-logo{justify-content:center;margin-bottom:2rem}}.footer-soc .soc{justify-content:center}.footer-soc .soc a:not(:last-child){margin-right:1.6rem}.footer__links{padding-bottom:1.5rem}.footer__links--ml13{margin-left:13rem}@media (max-width:991px){.footer__links--ml13{margin-left:0}}.footer__links-title{color:#fff;font-size:1.3rem;font-weight:600;letter-spacing:1px;line-height:1.23em;margin:0 0 1.6rem;text-transform:uppercase}.footer__links-items{align-items:flex-start;display:flex;flex-direction:column}.footer__links-item{color:rgba(224,224,255,.6);font-size:1.4rem;font-weight:500;letter-spacing:normal;line-height:1.71em;transition:all .3s ease-out}.footer__links-item.active,.footer__links-item:hover,.footer__links-item:visited{color:#fff;transform:translateX(.4rem)}.footer__links-item:not(:last-child){margin-bottom:.4rem}.legal-docs{align-items:center;color:#fff;display:flex;font-size:1.2rem;font-weight:400;justify-content:flex-end;letter-spacing:normal;line-height:2.4rem}@media (max-width:991px){.legal-docs{justify-content:center;margin-top:2rem}}.legal-docs a{align-items:center;display:inline-flex;font-weight:600;justify-content:center}.legal-docs a svg{margin-left:.8rem}.page_theme_light .author{color:#282a2e}.page_theme_light .author path{fill:rgba(40,42,46,.8)}.page_theme_light .footer__links-item,.page_theme_light .footer__links-title{color:#282a2e}.page_theme_light .footer-line{border:1px solid #282a2e}.section-start{box-sizing:border-box;color:#fff;min-height:83.6rem;overflow:hidden;padding:13rem 0 0;position:relative}@media (max-width:991px){.section-start{min-height:0;padding:13rem 0 7.2rem}}.section-start .relative{z-index:10}.section-start .pre-title{margin-top:9rem}@media (max-width:991px){.section-start .pre-title{margin-top:-2rem}}.section-start h1{color:#fff;font-family:Druk Cyr;font-size:9.2rem;font-weight:900;letter-spacing:.02em;line-height:10rem;margin-bottom:1.6rem;text-transform:uppercase}@media (max-width:991px){.section-start h1{font-size:8.2rem}}@media (max-width:768px){.section-start h1{font-size:5.4rem;font-weight:900;letter-spacing:.08em;line-height:6rem}}.start-btns{align-items:center;display:inline-flex;justify-content:flex-start}.start-btns .btn:not(:last-child){margin-right:4.8rem}.start__image{position:relative}@media (max-width:991px){.start__image{align-items:flex-start;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:1}}.start__image:before{background:linear-gradient(180deg,rgba(30,30,32,0),#1e1e20);bottom:0;content:" ";height:10rem;left:0;position:absolute;right:-100vw;z-index:3}@media (max-width:991px){.start__image:before{height:auto;top:0}.start__image img{position:relative;transform:translateX(250px);z-index:2}}.page_theme_light .section-start,.page_theme_light .section-start h1{color:#282a2e}.page_theme_light .start__image:before{background:linear-gradient(180deg,rgba(243,243,251,0),#f3f3fb)}.section-portfolio{padding:6rem 0 10rem;position:relative;z-index:1}.section-portfolio .container{position:relative;z-index:10}.portfolio__more .button{width:100%!important}.portfolio__tabs{display:flex;flex-wrap:wrap;padding-bottom:2.8rem}@media (max-width:576px){.portfolio__tabs{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;margin:0 -1.5rem 2.8rem;overflow:scroll;padding:0 1.5rem;white-space:nowrap}.portfolio__tabs::-webkit-scrollbar-track{background-color:transparent}.portfolio__tabs::-webkit-scrollbar{background-color:transparent;display:none}.portfolio__tabs::-webkit-scrollbar-thumb{background-color:transparent}}.portfolio__tab{margin-bottom:1.2rem;margin-right:1.2rem}.portfolio{border-radius:3.2rem;display:flex;height:100%;padding-bottom:2.4rem;width:100%}@media (max-width:991px){.portfolio{height:auto;margin-bottom:1.2rem}}.portfolio-content{padding:4rem 2rem 0 6rem}@media (max-width:991px){.portfolio-content{padding:0 3.2rem 3.2rem}}.portfolio-item{-webkit-backdrop-filter:blur(108.731px);backdrop-filter:blur(108.731px);background:linear-gradient(135deg,rgba(245,247,250,.12),rgba(245,247,250,.06) 52.14%,rgba(245,247,250,0));border:1px solid rgba(245,247,250,.06);border-radius:2.4rem;box-shadow:0 1px 1px rgba(9,13,20,.4),-4px -4px 8px rgba(224,224,255,.04),8px 8px 24px rgba(9,13,20,.4);display:flex;flex-direction:column;min-height:51rem;padding:3.2rem;position:relative;width:100%}.portfolio-item__img{align-items:center;border-radius:2.4rem 2.4rem 0 0;display:flex;justify-content:center;margin:-3.2rem -3.2rem 2.4rem;object-fit:cover;overflow:hidden}.portfolio-item__img img{max-width:100%;object-fit:cover;width:100%}.portfolio-item__date{color:#fff;font-size:1.4rem;font-weight:500;line-height:2rem;margin-bottom:2.4rem}.portfolio-item__date span{background:rgba(224,224,255,.02);border-radius:90px;display:inline-block;padding:1.2rem 2.4rem}.portfolio-item__title{color:#fff;font-size:2rem;font-weight:700;line-height:2.8rem;margin-bottom:1.2rem}.portfolio-item__desc{color:#fff;font-size:1.6rem;font-weight:500;line-height:2.4rem;opacity:.68;padding:0 0 2.4rem}.portfolio-item__link{margin-top:auto}.portfolio-item__big{flex-direction:row;padding:0}@media (max-width:991px){.portfolio-item__big{flex-direction:column}}.portfolio-item__big .portfolio-item__img{align-items:unset;border-radius:2.4rem 0 0 2.4rem;margin:0;min-width:384px;overflow:hidden;width:384px}@media (max-width:1200px){.portfolio-item__big .portfolio-item__img{min-width:200px;object-fit:cover;overflow:hidden;width:200px}}@media (max-width:991px){.portfolio-item__big .portfolio-item__img{border-radius:2.4rem 2.4rem 0 0;margin:0 0 2.4rem;min-width:unset;object-fit:cover;overflow:hidden;width:100%}}.portfolio-item__big .portfolio-item__img img{min-width:384px;width:384px}@media (max-width:991px){.portfolio-item__big .portfolio-item__img img{min-width:100%;width:100%}}.page_theme_light .portfolio-item{background:hsla(0,0%,100%,.4);border:1px solid rgba(245,247,250,.06);box-shadow:0 1px 1px hsla(0,0%,100%,.8),-4px -4px 16px hsla(0,0%,100%,.24),8px 8px 24px hsla(0,0%,93%,.8)}.page_theme_light .portfolio-item__date{color:#282a2e}.page_theme_light .portfolio-item__date span{background:rgba(40,42,46,.02)}.page_theme_light .portfolio-item__desc,.page_theme_light .portfolio-item__title{color:#282a2e}.main{padding:7.2rem 0 0}.section-second-page{display:block;overflow:hidden;padding:8rem 0 10rem;position:relative;z-index:1}.section-second-page .container{position:relative;z-index:5}.round{position:absolute;z-index:2}.round-1{background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);border-radius:50%;height:36rem;left:calc(50% + 14rem);top:13rem;width:36rem}@media (max-width:991px){.round-1{height:16.7px;width:16.7px}}.round-2{background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);border-radius:50%;height:27.4rem;left:-8rem;top:-3rem;width:27.4rem}@media (max-width:991px){.round-2{height:14.5rem;left:-5rem;top:-9rem;width:14.5rem}}@media print{body,html{color:#282a2e!important}}table{border:2px solid #2a1a1a;border-collapse:collapse;font-family:sans-serif;font-size:.8rem;letter-spacing:1px;width:100%}caption{caption-side:bottom;font-weight:700;padding:10px}tfoot,thead{background-color:#e4f0f5}td,th{border:1px solid #a0a0a0;padding:8px 10px}td:last-of-type{text-align:center}tbody>tr:nth-of-type(2n){background-color:#edeef2}tfoot th{text-align:right}tfoot td{font-weight:700}.second-page__nav{display:flex;gap:4rem;margin-top:4.8rem}@media (max-width:576px){.second-page__nav{flex-direction:column;gap:1.2rem}}.second-page__nav-item{background:rgba(224,224,255,.02);border:1px solid rgba(245,247,250,.06);border-radius:2.4rem;padding:2.4rem;width:calc(50% - 2rem)}@media (max-width:576px){.second-page__nav-item{padding:1.6rem;width:100%}}.second-page__nav-title{color:#fff;display:block;font-weight:600;margin-bottom:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.second-page__nav-link{-webkit-text-fill-color:transparent;text-fill-color:transparent;background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);-webkit-background-clip:text;background-clip:text;display:flex}.second-page__nav-link a{display:inline-flex;transition:all .3s ease-out}.second-page__nav-link a:hover{letter-spacing:.1rem}.second-page__nav-link svg{margin-right:1.2rem}.second-page__nav-right .blog__nav-link{justify-content:flex-end}.second-page__nav-right .blog__nav-link svg{margin-left:1.2rem}.page_theme_light .second-page__nav-item{-webkit-backdrop-filter:blur(108.731px);backdrop-filter:blur(108.731px);background:hsla(0,0%,100%,.4);border:1px solid rgba(245,247,250,.06);box-shadow:0 1px 1px hsla(0,0%,100%,.8),-4px -4px 16px hsla(0,0%,100%,.24),8px 8px 24px hsla(0,0%,93%,.8)}.page_theme_light .second-page__nav-title{color:#282a2e}.content p{margin-bottom:.8rem!important}.curriculum-vitae .button-size-static{width:16rem}.section-portfolio-page{padding:0 0 10rem;position:relative;z-index:1}.section-portfolio-page .container{position:relative;z-index:10}.portfolio-page__more .button{width:100%!important}.portfolio-page__tabs{display:flex;flex-wrap:wrap;padding-bottom:2.8rem}@media (max-width:576px){.portfolio-page__tabs{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;margin:0 -1.5rem 2.8rem;overflow:scroll;padding:0 1.5rem;white-space:nowrap}.portfolio-page__tabs::-webkit-scrollbar-track{background-color:transparent}.portfolio-page__tabs::-webkit-scrollbar{background-color:transparent;display:none}.portfolio-page__tabs::-webkit-scrollbar-thumb{background-color:transparent}}.portfolio-page__tab{margin-bottom:1.2rem;margin-right:1.2rem}.portfolio-page{border-radius:3.2rem;display:flex;height:100%;padding-bottom:2.4rem;width:100%}.portfolio-page-content{padding:4rem 2rem 0 6rem}.portfolio-page-item{-webkit-backdrop-filter:blur(108.731px);backdrop-filter:blur(108.731px);background:linear-gradient(135deg,rgba(245,247,250,.12),rgba(245,247,250,.06) 52.14%,rgba(245,247,250,0));border:1px solid rgba(245,247,250,.06);border-radius:2.4rem;box-shadow:0 1px 1px rgba(9,13,20,.4),-4px -4px 8px rgba(224,224,255,.04),8px 8px 24px rgba(9,13,20,.4);display:flex;flex-direction:column;min-height:51rem;padding:3.2rem;position:relative;width:100%}.portfolio-page-item__img{align-items:center;border-radius:2.4rem 2.4rem 0 0;display:flex;justify-content:center;margin:-3.2rem -3.2rem 2.4rem;object-fit:cover;overflow:hidden}.portfolio-page-item__img img{max-width:100%;object-fit:cover;width:100%}.portfolio-page-item__date{color:#fff;font-size:1.4rem;font-weight:500;line-height:2rem;margin-bottom:2.4rem}.portfolio-page-item__date span{background:rgba(224,224,255,.02);border-radius:90px;display:inline-block;padding:1.2rem 2.4rem}.portfolio-page-item__title{color:#fff;font-size:2rem;font-weight:700;line-height:2.8rem;margin-bottom:1.2rem}.portfolio-page-item__desc{color:#fff;font-size:1.6rem;font-weight:500;line-height:2.4rem;opacity:.68;padding:0 0 2.4rem}.portfolio-page-item__link{margin-top:auto}.portfolio-page-item__big{flex-direction:row;padding:0}.portfolio-page-item__big .portfolio-page-item__img{align-items:unset;border-radius:2.4rem 0 0 2.4rem;margin:0;min-width:384px;overflow:hidden;width:384px}.portfolio-page-item__big .portfolio-page-item__img img{min-width:384px;width:384px}.page_theme_light .portfolio-page-item{background:hsla(0,0%,100%,.4);border:1px solid rgba(245,247,250,.06);box-shadow:0 1px 1px hsla(0,0%,100%,.8),-4px -4px 16px hsla(0,0%,100%,.24),8px 8px 24px hsla(0,0%,93%,.8)}.page_theme_light .portfolio-page-item__date{color:#282a2e}.page_theme_light .portfolio-page-item__date span{background:rgba(40,42,46,.02)}.page_theme_light .portfolio-page-item__desc,.page_theme_light .portfolio-page-item__title{color:#282a2e}.gradient-round{position:absolute;z-index:2}.gradient-round-1{background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);border-radius:50%;height:41rem;left:calc(50% + 35rem);top:30rem;width:41rem}@media (max-width:991px){.gradient-round-1{bottom:46rem;height:14rem;left:auto;right:-4rem;top:auto;width:14rem}.gradient-round-2{background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);border-radius:50%;bottom:7rem;height:26rem;left:-7rem;width:26rem}}.inner__link{-webkit-text-fill-color:transparent;text-fill-color:transparent;background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);-webkit-background-clip:text;background-clip:text;display:inline-flex;transition:all .3s ease-out}.inner__link:hover{letter-spacing:.1rem}.inner__link img{margin-right:1.2rem}.section-projects{overflow:hidden;padding:6rem 0;position:relative}.section-projects .projects-round{background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);border-radius:50%;height:291px;position:absolute;right:calc(50% + 40rem);top:5rem;width:291px;z-index:1}@media (max-width:991px){.section-projects .projects-round{height:13.5rem;left:-4rem;top:3rem;width:13.5rem}}.section-projects .container{position:relative;z-index:5}.project{border-radius:3.2rem;display:flex;height:100%;width:100%}@media (max-width:991px){.project{height:auto;margin-bottom:1.2rem}}.project-item{-webkit-backdrop-filter:blur(108.731px);backdrop-filter:blur(108.731px);background:linear-gradient(135deg,rgba(245,247,250,.12),rgba(245,247,250,.06) 52.14%,rgba(245,247,250,0));border:1px solid rgba(245,247,250,.06);border-radius:24px;box-shadow:0 1px 1px rgba(9,13,20,.4),-4px -4px 8px rgba(224,224,255,.04),8px 8px 24px rgba(9,13,20,.4);box-shadow:0 12px 29px rgba(0,0,0,.16);display:flex;flex-direction:column;padding:4rem;position:relative;width:100%}@media (max-width:991px){.project-item{padding:3.2rem}}.project-item__icon{align-items:center;background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);border-radius:50%;display:flex;height:10rem;justify-content:center;margin-bottom:2.4rem;width:10rem}.project-item__icon img{height:4rem;width:4rem}.project-item__title{color:#fff;font-size:2rem;font-weight:700;line-height:2.8rem;margin-bottom:1.2rem}.project-item__desc{color:#fff;font-size:1.6rem;font-weight:500;line-height:2.4rem;margin-bottom:3.2rem;opacity:.68}@media (max-width:991px){.project-item__desc{margin-bottom:2.4rem}}.project-item__soc{background:rgba(224,224,255,.02);border-radius:7.6rem;margin-top:auto;padding:1.6rem}.page_theme_light .project-item{background:hsla(0,0%,100%,.4);border:1px solid rgba(245,247,250,.06);box-shadow:0 1px 1px hsla(0,0%,100%,.8),-4px -4px 16px hsla(0,0%,100%,.24),8px 8px 24px hsla(0,0%,93%,.8)}.page_theme_light .project-item__desc,.page_theme_light .project-item__title{color:#282a2e}.page_theme_light .project-item__soc{background:rgba(40,42,46,.02)}.section-blog{overflow:hidden;padding:6rem 0 10rem;position:relative;z-index:1}.section-blog .container{position:relative;z-index:10}.blog__more .button{width:100%!important}.blog__tabs{display:flex;flex-wrap:wrap;padding-bottom:2.8rem}@media (max-width:576px){.blog__tabs{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;margin:0 -1.5rem 2.8rem;overflow:scroll;padding:0 1.5rem;white-space:nowrap}.blog__tabs::-webkit-scrollbar-track{background-color:transparent}.blog__tabs::-webkit-scrollbar{background-color:transparent;display:none}.blog__tabs::-webkit-scrollbar-thumb{background-color:transparent}}.blog__tab{margin-bottom:1.2rem;margin-right:1.2rem}.blog{border-radius:3.2rem;display:flex;height:100%;padding-bottom:2.4rem;width:100%}@media (max-width:991px){.blog{height:auto;margin-bottom:1.2rem}}.blog-content{padding:4rem 2rem 0 6rem}@media (max-width:991px){.blog-content{padding:0 3.2rem 3.2rem}}.blog-item{-webkit-backdrop-filter:blur(108.731px);backdrop-filter:blur(108.731px);background:linear-gradient(135deg,rgba(245,247,250,.12),rgba(245,247,250,.06) 52.14%,rgba(245,247,250,0));border:1px solid rgba(245,247,250,.06);border-radius:2.4rem;box-shadow:0 1px 1px rgba(9,13,20,.4),-4px -4px 8px rgba(224,224,255,.04),8px 8px 24px rgba(9,13,20,.4);display:flex;flex-direction:column;min-height:51rem;padding:3.2rem;position:relative;width:100%}.blog-item__img{align-items:center;border-radius:2.4rem 2.4rem 0 0;display:flex;justify-content:center;margin:-3.2rem -3.2rem 2.4rem;object-fit:cover;overflow:hidden}.blog-item__img img{max-width:100%;object-fit:cover;width:100%}.blog-item__date{color:#fff;font-size:1.4rem;font-weight:500;line-height:2rem;margin-bottom:2.4rem}.blog-item__date span{background:rgba(224,224,255,.02);border-radius:90px;display:inline-block;padding:1.2rem 2.4rem}.blog-item__title{color:#fff;font-size:2rem;font-weight:700;line-height:2.8rem;margin-bottom:1.2rem}.blog-item__desc{color:#fff;font-size:1.6rem;font-weight:500;line-height:2.4rem;opacity:.68;padding:0 0 2.4rem}.blog-item__link{margin-top:auto}.blog-item__big{flex-direction:row;padding:0}@media (max-width:991px){.blog-item__big{flex-direction:column}}.blog-item__big .blog-item__img{align-items:unset;border-radius:2.4rem 0 0 2.4rem;margin:0;min-width:384px;overflow:hidden;width:384px}@media (max-width:1200px){.blog-item__big .blog-item__img{min-width:200px;object-fit:cover;overflow:hidden;width:200px}}@media (max-width:991px){.blog-item__big .blog-item__img{border-radius:2.4rem 2.4rem 0 0;margin:0 0 2.4rem;min-width:unset;object-fit:cover;overflow:hidden;width:100%}}.blog-item__big .blog-item__img img{min-width:384px;width:384px}@media (max-width:991px){.blog-item__big .blog-item__img img{min-width:100%;width:100%}}.page_theme_light .blog-item{background:hsla(0,0%,100%,.4);border:1px solid rgba(245,247,250,.06);box-shadow:0 1px 1px hsla(0,0%,100%,.8),-4px -4px 16px hsla(0,0%,100%,.24),8px 8px 24px hsla(0,0%,93%,.8)}.page_theme_light .blog-item__date{color:#282a2e}.page_theme_light .blog-item__date span{background:rgba(40,42,46,.02)}.page_theme_light .blog-item__desc,.page_theme_light .blog-item__title{color:#282a2e} \ No newline at end of file + */.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;margin-left:auto;margin-right:auto;padding-left:calc(var(--bs-gutter-x)*.5);padding-right:calc(var(--bs-gutter-x)*.5);width:100%}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-left:calc(var(--bs-gutter-x)*-.5);margin-right:calc(var(--bs-gutter-x)*-.5);margin-top:calc(var(--bs-gutter-y)*-1)}.row>*{box-sizing:border-box;flex-shrink:0;margin-top:var(--bs-gutter-y);max-width:100%;padding-left:calc(var(--bs-gutter-x)*.5);padding-right:calc(var(--bs-gutter-x)*.5);width:100%}.col{flex:1 0}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333%}.col-2{flex:0 0 auto;width:16.66667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333%}.col-5{flex:0 0 auto;width:41.66667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333%}.col-8{flex:0 0 auto;width:66.66667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333%}.col-11{flex:0 0 auto;width:91.66667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333%}.offset-2{margin-left:16.66667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333%}.offset-5{margin-left:41.66667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333%}.offset-8{margin-left:66.66667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333%}.offset-11{margin-left:91.66667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:.25rem}.g-1,.gy-1{--bs-gutter-y:.25rem}.g-2,.gx-2{--bs-gutter-x:.5rem}.g-2,.gy-2{--bs-gutter-y:.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333%}.col-sm-2{flex:0 0 auto;width:16.66667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333%}.col-sm-5{flex:0 0 auto;width:41.66667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333%}.col-sm-8{flex:0 0 auto;width:66.66667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333%}.col-sm-11{flex:0 0 auto;width:91.66667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333%}.offset-sm-2{margin-left:16.66667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333%}.offset-sm-5{margin-left:41.66667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333%}.offset-sm-8{margin-left:66.66667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333%}.offset-sm-11{margin-left:91.66667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333%}.col-md-2{flex:0 0 auto;width:16.66667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333%}.col-md-5{flex:0 0 auto;width:41.66667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333%}.col-md-8{flex:0 0 auto;width:66.66667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333%}.col-md-11{flex:0 0 auto;width:91.66667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333%}.offset-md-2{margin-left:16.66667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333%}.offset-md-5{margin-left:41.66667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333%}.offset-md-8{margin-left:66.66667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333%}.offset-md-11{margin-left:91.66667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333%}.col-lg-2{flex:0 0 auto;width:16.66667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333%}.col-lg-5{flex:0 0 auto;width:41.66667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333%}.col-lg-8{flex:0 0 auto;width:66.66667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333%}.col-lg-11{flex:0 0 auto;width:91.66667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333%}.offset-lg-2{margin-left:16.66667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333%}.offset-lg-5{margin-left:41.66667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333%}.offset-lg-8{margin-left:66.66667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333%}.offset-lg-11{margin-left:91.66667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333%}.col-xl-2{flex:0 0 auto;width:16.66667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333%}.col-xl-5{flex:0 0 auto;width:41.66667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333%}.col-xl-8{flex:0 0 auto;width:66.66667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333%}.col-xl-11{flex:0 0 auto;width:91.66667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333%}.offset-xl-2{margin-left:16.66667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333%}.offset-xl-5{margin-left:41.66667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333%}.offset-xl-8{margin-left:66.66667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333%}.offset-xl-11{margin-left:91.66667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333%}.col-xxl-2{flex:0 0 auto;width:16.66667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333%}.col-xxl-5{flex:0 0 auto;width:41.66667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333%}.col-xxl-8{flex:0 0 auto;width:66.66667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333%}.col-xxl-11{flex:0 0 auto;width:91.66667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333%}.offset-xxl-2{margin-left:16.66667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333%}.offset-xxl-5{margin-left:41.66667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333%}.offset-xxl-8{margin-left:66.66667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333%}.offset-xxl-11{margin-left:91.66667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-left:0!important;margin-right:0!important}.mx-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-3{margin-left:1rem!important;margin-right:1rem!important}.mx-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-5{margin-left:3rem!important;margin-right:3rem!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.my-0{margin-bottom:0!important;margin-top:0!important}.my-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-left:0!important;padding-right:0!important}.px-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-3{padding-left:1rem!important;padding-right:1rem!important}.px-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-5{padding-left:3rem!important;padding-right:3rem!important}.py-0{padding-bottom:0!important;padding-top:0!important}.py-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}@media (min-width:576px){.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-left:0!important;margin-right:0!important}.mx-sm-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-sm-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-sm-3{margin-left:1rem!important;margin-right:1rem!important}.mx-sm-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-sm-5{margin-left:3rem!important;margin-right:3rem!important}.mx-sm-auto{margin-left:auto!important;margin-right:auto!important}.my-sm-0{margin-bottom:0!important;margin-top:0!important}.my-sm-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-sm-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-sm-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-sm-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-sm-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-sm-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-left:0!important;padding-right:0!important}.px-sm-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-sm-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-sm-3{padding-left:1rem!important;padding-right:1rem!important}.px-sm-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-sm-5{padding-left:3rem!important;padding-right:3rem!important}.py-sm-0{padding-bottom:0!important;padding-top:0!important}.py-sm-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-sm-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-sm-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-sm-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-sm-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}}@media (min-width:768px){.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-left:0!important;margin-right:0!important}.mx-md-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-md-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-md-3{margin-left:1rem!important;margin-right:1rem!important}.mx-md-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-md-5{margin-left:3rem!important;margin-right:3rem!important}.mx-md-auto{margin-left:auto!important;margin-right:auto!important}.my-md-0{margin-bottom:0!important;margin-top:0!important}.my-md-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-md-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-md-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-md-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-md-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-md-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-left:0!important;padding-right:0!important}.px-md-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-md-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-md-3{padding-left:1rem!important;padding-right:1rem!important}.px-md-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-md-5{padding-left:3rem!important;padding-right:3rem!important}.py-md-0{padding-bottom:0!important;padding-top:0!important}.py-md-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-md-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-md-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-md-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-md-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}}@media (min-width:992px){.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-left:0!important;margin-right:0!important}.mx-lg-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-lg-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-lg-3{margin-left:1rem!important;margin-right:1rem!important}.mx-lg-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-lg-5{margin-left:3rem!important;margin-right:3rem!important}.mx-lg-auto{margin-left:auto!important;margin-right:auto!important}.my-lg-0{margin-bottom:0!important;margin-top:0!important}.my-lg-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-lg-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-lg-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-lg-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-lg-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-lg-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-left:0!important;padding-right:0!important}.px-lg-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-lg-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-lg-3{padding-left:1rem!important;padding-right:1rem!important}.px-lg-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-lg-5{padding-left:3rem!important;padding-right:3rem!important}.py-lg-0{padding-bottom:0!important;padding-top:0!important}.py-lg-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-lg-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-lg-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-lg-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-lg-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}}@media (min-width:1200px){.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-left:0!important;margin-right:0!important}.mx-xl-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-xl-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-xl-3{margin-left:1rem!important;margin-right:1rem!important}.mx-xl-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-xl-5{margin-left:3rem!important;margin-right:3rem!important}.mx-xl-auto{margin-left:auto!important;margin-right:auto!important}.my-xl-0{margin-bottom:0!important;margin-top:0!important}.my-xl-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-xl-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-xl-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-xl-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-xl-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-xl-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-left:0!important;padding-right:0!important}.px-xl-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-xl-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-xl-3{padding-left:1rem!important;padding-right:1rem!important}.px-xl-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-xl-5{padding-left:3rem!important;padding-right:3rem!important}.py-xl-0{padding-bottom:0!important;padding-top:0!important}.py-xl-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-xl-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-xl-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-xl-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-xl-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}}@media (min-width:1400px){.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-left:0!important;margin-right:0!important}.mx-xxl-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-xxl-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-xxl-3{margin-left:1rem!important;margin-right:1rem!important}.mx-xxl-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-xxl-5{margin-left:3rem!important;margin-right:3rem!important}.mx-xxl-auto{margin-left:auto!important;margin-right:auto!important}.my-xxl-0{margin-bottom:0!important;margin-top:0!important}.my-xxl-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-xxl-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-xxl-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-xxl-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-xxl-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-xxl-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-left:0!important;padding-right:0!important}.px-xxl-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-xxl-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-xxl-3{padding-left:1rem!important;padding-right:1rem!important}.px-xxl-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-xxl-5{padding-left:3rem!important;padding-right:3rem!important}.py-xxl-0{padding-bottom:0!important;padding-top:0!important}.py-xxl-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-xxl-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-xxl-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-xxl-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-xxl-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}:root{--toastify-color-light:#fff;--toastify-color-dark:#121212;--toastify-color-info:#3498db;--toastify-color-success:#07bc0c;--toastify-color-warning:#f1c40f;--toastify-color-error:#e74c3c;--toastify-color-transparent:hsla(0,0%,100%,.7);--toastify-icon-color-info:var(--toastify-color-info);--toastify-icon-color-success:var(--toastify-color-success);--toastify-icon-color-warning:var(--toastify-color-warning);--toastify-icon-color-error:var(--toastify-color-error);--toastify-toast-width:320px;--toastify-toast-offset:16px;--toastify-toast-top:max(var(--toastify-toast-offset),env(safe-area-inset-top));--toastify-toast-right:max(var(--toastify-toast-offset),env(safe-area-inset-right));--toastify-toast-left:max(var(--toastify-toast-offset),env(safe-area-inset-left));--toastify-toast-bottom:max(var(--toastify-toast-offset),env(safe-area-inset-bottom));--toastify-toast-background:#fff;--toastify-toast-min-height:64px;--toastify-toast-max-height:800px;--toastify-toast-bd-radius:6px;--toastify-font-family:sans-serif;--toastify-z-index:9999;--toastify-text-color-light:#757575;--toastify-text-color-dark:#fff;--toastify-text-color-info:#fff;--toastify-text-color-success:#fff;--toastify-text-color-warning:#fff;--toastify-text-color-error:#fff;--toastify-spinner-color:#616161;--toastify-spinner-color-empty-area:#e0e0e0;--toastify-color-progress-light:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);--toastify-color-progress-dark:#bb86fc;--toastify-color-progress-info:var(--toastify-color-info);--toastify-color-progress-success:var(--toastify-color-success);--toastify-color-progress-warning:var(--toastify-color-warning);--toastify-color-progress-error:var(--toastify-color-error);--toastify-color-progress-bgo:0.2}.Toastify__toast-container{box-sizing:border-box;color:#fff;padding:4px;position:fixed;-webkit-transform:translateZ(var(--toastify-z-index));width:var(--toastify-toast-width);z-index:var(--toastify-z-index)}.Toastify__toast-container--top-left{left:var(--toastify-toast-left);top:var(--toastify-toast-top)}.Toastify__toast-container--top-center{left:50%;top:var(--toastify-toast-top);transform:translateX(-50%)}.Toastify__toast-container--top-right{right:var(--toastify-toast-right);top:var(--toastify-toast-top)}.Toastify__toast-container--bottom-left{bottom:var(--toastify-toast-bottom);left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{bottom:var(--toastify-toast-bottom);left:50%;transform:translateX(-50%)}.Toastify__toast-container--bottom-right{bottom:var(--toastify-toast-bottom);right:var(--toastify-toast-right)}@media only screen and (max-width:480px){.Toastify__toast-container{left:env(safe-area-inset-left);margin:0;padding:0;width:100vw}.Toastify__toast-container--top-center,.Toastify__toast-container--top-left,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translateX(0)}.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translateX(0)}.Toastify__toast-container--rtl{left:auto;right:env(safe-area-inset-right)}}.Toastify__toast{--y:0;border-radius:var(--toastify-toast-bd-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);box-sizing:border-box;cursor:default;direction:ltr;display:flex;font-family:var(--toastify-font-family);justify-content:space-between;margin-bottom:1rem;max-height:var(--toastify-toast-max-height);min-height:var(--toastify-toast-min-height);overflow:hidden;padding:8px;position:relative;touch-action:none;z-index:0}.Toastify__toast--stacked{position:absolute;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s;width:100%}.Toastify__toast--stacked[data-collapsed] .Toastify__close-button,.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{bottom:100%;content:"";height:calc(var(--g)*1px);left:0;position:absolute;right:0}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{bottom:0;content:"";height:100%;left:0;position:absolute;right:0;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-body{align-items:center;display:flex;flex:1 1 auto;margin:auto 0;padding:6px}.Toastify__toast-body>div:last-child{flex:1 1;word-break:break-word}.Toastify__toast-icon{display:flex;flex-shrink:0;margin-inline-end:10px;width:20px}.Toastify--animate{animation-duration:.5s;animation-fill-mode:both}.Toastify--animate-icon{animation-duration:.3s;animation-fill-mode:both}@media only screen and (max-width:480px){.Toastify__toast{border-radius:0;margin-bottom:0}}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--colored.Toastify__toast--default,.Toastify__toast-theme--light{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{background:var(--toastify-color-info);color:var(--toastify-text-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{background:var(--toastify-color-success);color:var(--toastify-text-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{background:var(--toastify-color-warning);color:var(--toastify-text-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{background:var(--toastify-color-error);color:var(--toastify-text-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning{background:var(--toastify-color-transparent)}.Toastify__close-button{align-self:flex-start;background:transparent;border:none;color:#fff;cursor:pointer;opacity:.7;outline:none;padding:0;transition:.3s ease;z-index:1}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:focus,.Toastify__close-button:hover{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{border-bottom-left-radius:var(--toastify-toast-bd-radius);bottom:0;height:100%;left:0;opacity:.7;position:absolute;transform-origin:left;width:100%;z-index:var(--toastify-z-index)}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{border-bottom-left-radius:0;border-bottom-right-radius:var(--toastify-toast-bd-radius);left:auto;right:0;transform-origin:right}.Toastify__progress-bar--wrp{border-bottom-left-radius:var(--toastify-toast-bd-radius);bottom:0;height:5px;left:0;position:absolute;width:100%}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{height:100%;opacity:var(--toastify-color-progress-bgo);width:100%}.Toastify__spinner{animation:Toastify__spin .65s linear infinite;border:2px solid;border-color:var(--toastify-spinner-color-empty-area);border-radius:100%;border-right-color:var(--toastify-spinner-color);box-sizing:border-box;height:20px;width:20px}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--bottom-left,.Toastify__bounce-enter--top-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--bottom-right,.Toastify__bounce-enter--top-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--bottom-left,.Toastify__bounce-exit--top-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--bottom-right,.Toastify__bounce-exit--top-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{animation-timing-function:ease-in;opacity:0;transform:perspective(400px) rotateX(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px) rotateX(-20deg)}60%{opacity:1;transform:perspective(400px) rotateX(10deg)}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{opacity:1;transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg)}to{opacity:0;transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg)}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(110%,var(--y),0);visibility:hidden}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(-110%,var(--y),0);visibility:hidden}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(0,500px,0);visibility:hidden}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(0,-500px,0);visibility:hidden}}.Toastify__slide-enter--bottom-left,.Toastify__slide-enter--top-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--bottom-right,.Toastify__slide-enter--top-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--bottom-left,.Toastify__slide-exit--top-left{animation-duration:.3s;animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in}.Toastify__slide-exit--bottom-right,.Toastify__slide-exit--top-right{animation-duration:.3s;animation-name:Toastify__slideOutRight;animation-timing-function:ease-in}.Toastify__slide-exit--top-center{animation-duration:.3s;animation-name:Toastify__slideOutUp;animation-timing-function:ease-in}.Toastify__slide-exit--bottom-center{animation-duration:.3s;animation-name:Toastify__slideOutDown;animation-timing-function:ease-in}@keyframes Toastify__spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}[data-aos][data-aos][data-aos-duration="50"],body[data-aos-duration="50"] [data-aos]{transition-duration:50ms}[data-aos][data-aos][data-aos-delay="50"],body[data-aos-delay="50"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="50"].aos-animate,body[data-aos-delay="50"] [data-aos].aos-animate{transition-delay:50ms}[data-aos][data-aos][data-aos-duration="100"],body[data-aos-duration="100"] [data-aos]{transition-duration:.1s}[data-aos][data-aos][data-aos-delay="100"],body[data-aos-delay="100"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="100"].aos-animate,body[data-aos-delay="100"] [data-aos].aos-animate{transition-delay:.1s}[data-aos][data-aos][data-aos-duration="150"],body[data-aos-duration="150"] [data-aos]{transition-duration:.15s}[data-aos][data-aos][data-aos-delay="150"],body[data-aos-delay="150"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="150"].aos-animate,body[data-aos-delay="150"] [data-aos].aos-animate{transition-delay:.15s}[data-aos][data-aos][data-aos-duration="200"],body[data-aos-duration="200"] [data-aos]{transition-duration:.2s}[data-aos][data-aos][data-aos-delay="200"],body[data-aos-delay="200"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="200"].aos-animate,body[data-aos-delay="200"] [data-aos].aos-animate{transition-delay:.2s}[data-aos][data-aos][data-aos-duration="250"],body[data-aos-duration="250"] [data-aos]{transition-duration:.25s}[data-aos][data-aos][data-aos-delay="250"],body[data-aos-delay="250"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="250"].aos-animate,body[data-aos-delay="250"] [data-aos].aos-animate{transition-delay:.25s}[data-aos][data-aos][data-aos-duration="300"],body[data-aos-duration="300"] [data-aos]{transition-duration:.3s}[data-aos][data-aos][data-aos-delay="300"],body[data-aos-delay="300"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="300"].aos-animate,body[data-aos-delay="300"] [data-aos].aos-animate{transition-delay:.3s}[data-aos][data-aos][data-aos-duration="350"],body[data-aos-duration="350"] [data-aos]{transition-duration:.35s}[data-aos][data-aos][data-aos-delay="350"],body[data-aos-delay="350"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="350"].aos-animate,body[data-aos-delay="350"] [data-aos].aos-animate{transition-delay:.35s}[data-aos][data-aos][data-aos-duration="400"],body[data-aos-duration="400"] [data-aos]{transition-duration:.4s}[data-aos][data-aos][data-aos-delay="400"],body[data-aos-delay="400"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="400"].aos-animate,body[data-aos-delay="400"] [data-aos].aos-animate{transition-delay:.4s}[data-aos][data-aos][data-aos-duration="450"],body[data-aos-duration="450"] [data-aos]{transition-duration:.45s}[data-aos][data-aos][data-aos-delay="450"],body[data-aos-delay="450"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="450"].aos-animate,body[data-aos-delay="450"] [data-aos].aos-animate{transition-delay:.45s}[data-aos][data-aos][data-aos-duration="500"],body[data-aos-duration="500"] [data-aos]{transition-duration:.5s}[data-aos][data-aos][data-aos-delay="500"],body[data-aos-delay="500"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="500"].aos-animate,body[data-aos-delay="500"] [data-aos].aos-animate{transition-delay:.5s}[data-aos][data-aos][data-aos-duration="550"],body[data-aos-duration="550"] [data-aos]{transition-duration:.55s}[data-aos][data-aos][data-aos-delay="550"],body[data-aos-delay="550"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="550"].aos-animate,body[data-aos-delay="550"] [data-aos].aos-animate{transition-delay:.55s}[data-aos][data-aos][data-aos-duration="600"],body[data-aos-duration="600"] [data-aos]{transition-duration:.6s}[data-aos][data-aos][data-aos-delay="600"],body[data-aos-delay="600"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="600"].aos-animate,body[data-aos-delay="600"] [data-aos].aos-animate{transition-delay:.6s}[data-aos][data-aos][data-aos-duration="650"],body[data-aos-duration="650"] [data-aos]{transition-duration:.65s}[data-aos][data-aos][data-aos-delay="650"],body[data-aos-delay="650"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="650"].aos-animate,body[data-aos-delay="650"] [data-aos].aos-animate{transition-delay:.65s}[data-aos][data-aos][data-aos-duration="700"],body[data-aos-duration="700"] [data-aos]{transition-duration:.7s}[data-aos][data-aos][data-aos-delay="700"],body[data-aos-delay="700"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="700"].aos-animate,body[data-aos-delay="700"] [data-aos].aos-animate{transition-delay:.7s}[data-aos][data-aos][data-aos-duration="750"],body[data-aos-duration="750"] [data-aos]{transition-duration:.75s}[data-aos][data-aos][data-aos-delay="750"],body[data-aos-delay="750"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="750"].aos-animate,body[data-aos-delay="750"] [data-aos].aos-animate{transition-delay:.75s}[data-aos][data-aos][data-aos-duration="800"],body[data-aos-duration="800"] [data-aos]{transition-duration:.8s}[data-aos][data-aos][data-aos-delay="800"],body[data-aos-delay="800"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="800"].aos-animate,body[data-aos-delay="800"] [data-aos].aos-animate{transition-delay:.8s}[data-aos][data-aos][data-aos-duration="850"],body[data-aos-duration="850"] [data-aos]{transition-duration:.85s}[data-aos][data-aos][data-aos-delay="850"],body[data-aos-delay="850"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="850"].aos-animate,body[data-aos-delay="850"] [data-aos].aos-animate{transition-delay:.85s}[data-aos][data-aos][data-aos-duration="900"],body[data-aos-duration="900"] [data-aos]{transition-duration:.9s}[data-aos][data-aos][data-aos-delay="900"],body[data-aos-delay="900"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="900"].aos-animate,body[data-aos-delay="900"] [data-aos].aos-animate{transition-delay:.9s}[data-aos][data-aos][data-aos-duration="950"],body[data-aos-duration="950"] [data-aos]{transition-duration:.95s}[data-aos][data-aos][data-aos-delay="950"],body[data-aos-delay="950"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="950"].aos-animate,body[data-aos-delay="950"] [data-aos].aos-animate{transition-delay:.95s}[data-aos][data-aos][data-aos-duration="1000"],body[data-aos-duration="1000"] [data-aos]{transition-duration:1s}[data-aos][data-aos][data-aos-delay="1000"],body[data-aos-delay="1000"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1000"].aos-animate,body[data-aos-delay="1000"] [data-aos].aos-animate{transition-delay:1s}[data-aos][data-aos][data-aos-duration="1050"],body[data-aos-duration="1050"] [data-aos]{transition-duration:1.05s}[data-aos][data-aos][data-aos-delay="1050"],body[data-aos-delay="1050"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1050"].aos-animate,body[data-aos-delay="1050"] [data-aos].aos-animate{transition-delay:1.05s}[data-aos][data-aos][data-aos-duration="1100"],body[data-aos-duration="1100"] [data-aos]{transition-duration:1.1s}[data-aos][data-aos][data-aos-delay="1100"],body[data-aos-delay="1100"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1100"].aos-animate,body[data-aos-delay="1100"] [data-aos].aos-animate{transition-delay:1.1s}[data-aos][data-aos][data-aos-duration="1150"],body[data-aos-duration="1150"] [data-aos]{transition-duration:1.15s}[data-aos][data-aos][data-aos-delay="1150"],body[data-aos-delay="1150"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1150"].aos-animate,body[data-aos-delay="1150"] [data-aos].aos-animate{transition-delay:1.15s}[data-aos][data-aos][data-aos-duration="1200"],body[data-aos-duration="1200"] [data-aos]{transition-duration:1.2s}[data-aos][data-aos][data-aos-delay="1200"],body[data-aos-delay="1200"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1200"].aos-animate,body[data-aos-delay="1200"] [data-aos].aos-animate{transition-delay:1.2s}[data-aos][data-aos][data-aos-duration="1250"],body[data-aos-duration="1250"] [data-aos]{transition-duration:1.25s}[data-aos][data-aos][data-aos-delay="1250"],body[data-aos-delay="1250"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1250"].aos-animate,body[data-aos-delay="1250"] [data-aos].aos-animate{transition-delay:1.25s}[data-aos][data-aos][data-aos-duration="1300"],body[data-aos-duration="1300"] [data-aos]{transition-duration:1.3s}[data-aos][data-aos][data-aos-delay="1300"],body[data-aos-delay="1300"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1300"].aos-animate,body[data-aos-delay="1300"] [data-aos].aos-animate{transition-delay:1.3s}[data-aos][data-aos][data-aos-duration="1350"],body[data-aos-duration="1350"] [data-aos]{transition-duration:1.35s}[data-aos][data-aos][data-aos-delay="1350"],body[data-aos-delay="1350"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1350"].aos-animate,body[data-aos-delay="1350"] [data-aos].aos-animate{transition-delay:1.35s}[data-aos][data-aos][data-aos-duration="1400"],body[data-aos-duration="1400"] [data-aos]{transition-duration:1.4s}[data-aos][data-aos][data-aos-delay="1400"],body[data-aos-delay="1400"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1400"].aos-animate,body[data-aos-delay="1400"] [data-aos].aos-animate{transition-delay:1.4s}[data-aos][data-aos][data-aos-duration="1450"],body[data-aos-duration="1450"] [data-aos]{transition-duration:1.45s}[data-aos][data-aos][data-aos-delay="1450"],body[data-aos-delay="1450"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1450"].aos-animate,body[data-aos-delay="1450"] [data-aos].aos-animate{transition-delay:1.45s}[data-aos][data-aos][data-aos-duration="1500"],body[data-aos-duration="1500"] [data-aos]{transition-duration:1.5s}[data-aos][data-aos][data-aos-delay="1500"],body[data-aos-delay="1500"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1500"].aos-animate,body[data-aos-delay="1500"] [data-aos].aos-animate{transition-delay:1.5s}[data-aos][data-aos][data-aos-duration="1550"],body[data-aos-duration="1550"] [data-aos]{transition-duration:1.55s}[data-aos][data-aos][data-aos-delay="1550"],body[data-aos-delay="1550"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1550"].aos-animate,body[data-aos-delay="1550"] [data-aos].aos-animate{transition-delay:1.55s}[data-aos][data-aos][data-aos-duration="1600"],body[data-aos-duration="1600"] [data-aos]{transition-duration:1.6s}[data-aos][data-aos][data-aos-delay="1600"],body[data-aos-delay="1600"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1600"].aos-animate,body[data-aos-delay="1600"] [data-aos].aos-animate{transition-delay:1.6s}[data-aos][data-aos][data-aos-duration="1650"],body[data-aos-duration="1650"] [data-aos]{transition-duration:1.65s}[data-aos][data-aos][data-aos-delay="1650"],body[data-aos-delay="1650"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1650"].aos-animate,body[data-aos-delay="1650"] [data-aos].aos-animate{transition-delay:1.65s}[data-aos][data-aos][data-aos-duration="1700"],body[data-aos-duration="1700"] [data-aos]{transition-duration:1.7s}[data-aos][data-aos][data-aos-delay="1700"],body[data-aos-delay="1700"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1700"].aos-animate,body[data-aos-delay="1700"] [data-aos].aos-animate{transition-delay:1.7s}[data-aos][data-aos][data-aos-duration="1750"],body[data-aos-duration="1750"] [data-aos]{transition-duration:1.75s}[data-aos][data-aos][data-aos-delay="1750"],body[data-aos-delay="1750"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1750"].aos-animate,body[data-aos-delay="1750"] [data-aos].aos-animate{transition-delay:1.75s}[data-aos][data-aos][data-aos-duration="1800"],body[data-aos-duration="1800"] [data-aos]{transition-duration:1.8s}[data-aos][data-aos][data-aos-delay="1800"],body[data-aos-delay="1800"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1800"].aos-animate,body[data-aos-delay="1800"] [data-aos].aos-animate{transition-delay:1.8s}[data-aos][data-aos][data-aos-duration="1850"],body[data-aos-duration="1850"] [data-aos]{transition-duration:1.85s}[data-aos][data-aos][data-aos-delay="1850"],body[data-aos-delay="1850"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1850"].aos-animate,body[data-aos-delay="1850"] [data-aos].aos-animate{transition-delay:1.85s}[data-aos][data-aos][data-aos-duration="1900"],body[data-aos-duration="1900"] [data-aos]{transition-duration:1.9s}[data-aos][data-aos][data-aos-delay="1900"],body[data-aos-delay="1900"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1900"].aos-animate,body[data-aos-delay="1900"] [data-aos].aos-animate{transition-delay:1.9s}[data-aos][data-aos][data-aos-duration="1950"],body[data-aos-duration="1950"] [data-aos]{transition-duration:1.95s}[data-aos][data-aos][data-aos-delay="1950"],body[data-aos-delay="1950"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1950"].aos-animate,body[data-aos-delay="1950"] [data-aos].aos-animate{transition-delay:1.95s}[data-aos][data-aos][data-aos-duration="2000"],body[data-aos-duration="2000"] [data-aos]{transition-duration:2s}[data-aos][data-aos][data-aos-delay="2000"],body[data-aos-delay="2000"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2000"].aos-animate,body[data-aos-delay="2000"] [data-aos].aos-animate{transition-delay:2s}[data-aos][data-aos][data-aos-duration="2050"],body[data-aos-duration="2050"] [data-aos]{transition-duration:2.05s}[data-aos][data-aos][data-aos-delay="2050"],body[data-aos-delay="2050"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2050"].aos-animate,body[data-aos-delay="2050"] [data-aos].aos-animate{transition-delay:2.05s}[data-aos][data-aos][data-aos-duration="2100"],body[data-aos-duration="2100"] [data-aos]{transition-duration:2.1s}[data-aos][data-aos][data-aos-delay="2100"],body[data-aos-delay="2100"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2100"].aos-animate,body[data-aos-delay="2100"] [data-aos].aos-animate{transition-delay:2.1s}[data-aos][data-aos][data-aos-duration="2150"],body[data-aos-duration="2150"] [data-aos]{transition-duration:2.15s}[data-aos][data-aos][data-aos-delay="2150"],body[data-aos-delay="2150"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2150"].aos-animate,body[data-aos-delay="2150"] [data-aos].aos-animate{transition-delay:2.15s}[data-aos][data-aos][data-aos-duration="2200"],body[data-aos-duration="2200"] [data-aos]{transition-duration:2.2s}[data-aos][data-aos][data-aos-delay="2200"],body[data-aos-delay="2200"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2200"].aos-animate,body[data-aos-delay="2200"] [data-aos].aos-animate{transition-delay:2.2s}[data-aos][data-aos][data-aos-duration="2250"],body[data-aos-duration="2250"] [data-aos]{transition-duration:2.25s}[data-aos][data-aos][data-aos-delay="2250"],body[data-aos-delay="2250"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2250"].aos-animate,body[data-aos-delay="2250"] [data-aos].aos-animate{transition-delay:2.25s}[data-aos][data-aos][data-aos-duration="2300"],body[data-aos-duration="2300"] [data-aos]{transition-duration:2.3s}[data-aos][data-aos][data-aos-delay="2300"],body[data-aos-delay="2300"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2300"].aos-animate,body[data-aos-delay="2300"] [data-aos].aos-animate{transition-delay:2.3s}[data-aos][data-aos][data-aos-duration="2350"],body[data-aos-duration="2350"] [data-aos]{transition-duration:2.35s}[data-aos][data-aos][data-aos-delay="2350"],body[data-aos-delay="2350"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2350"].aos-animate,body[data-aos-delay="2350"] [data-aos].aos-animate{transition-delay:2.35s}[data-aos][data-aos][data-aos-duration="2400"],body[data-aos-duration="2400"] [data-aos]{transition-duration:2.4s}[data-aos][data-aos][data-aos-delay="2400"],body[data-aos-delay="2400"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2400"].aos-animate,body[data-aos-delay="2400"] [data-aos].aos-animate{transition-delay:2.4s}[data-aos][data-aos][data-aos-duration="2450"],body[data-aos-duration="2450"] [data-aos]{transition-duration:2.45s}[data-aos][data-aos][data-aos-delay="2450"],body[data-aos-delay="2450"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2450"].aos-animate,body[data-aos-delay="2450"] [data-aos].aos-animate{transition-delay:2.45s}[data-aos][data-aos][data-aos-duration="2500"],body[data-aos-duration="2500"] [data-aos]{transition-duration:2.5s}[data-aos][data-aos][data-aos-delay="2500"],body[data-aos-delay="2500"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2500"].aos-animate,body[data-aos-delay="2500"] [data-aos].aos-animate{transition-delay:2.5s}[data-aos][data-aos][data-aos-duration="2550"],body[data-aos-duration="2550"] [data-aos]{transition-duration:2.55s}[data-aos][data-aos][data-aos-delay="2550"],body[data-aos-delay="2550"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2550"].aos-animate,body[data-aos-delay="2550"] [data-aos].aos-animate{transition-delay:2.55s}[data-aos][data-aos][data-aos-duration="2600"],body[data-aos-duration="2600"] [data-aos]{transition-duration:2.6s}[data-aos][data-aos][data-aos-delay="2600"],body[data-aos-delay="2600"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2600"].aos-animate,body[data-aos-delay="2600"] [data-aos].aos-animate{transition-delay:2.6s}[data-aos][data-aos][data-aos-duration="2650"],body[data-aos-duration="2650"] [data-aos]{transition-duration:2.65s}[data-aos][data-aos][data-aos-delay="2650"],body[data-aos-delay="2650"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2650"].aos-animate,body[data-aos-delay="2650"] [data-aos].aos-animate{transition-delay:2.65s}[data-aos][data-aos][data-aos-duration="2700"],body[data-aos-duration="2700"] [data-aos]{transition-duration:2.7s}[data-aos][data-aos][data-aos-delay="2700"],body[data-aos-delay="2700"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2700"].aos-animate,body[data-aos-delay="2700"] [data-aos].aos-animate{transition-delay:2.7s}[data-aos][data-aos][data-aos-duration="2750"],body[data-aos-duration="2750"] [data-aos]{transition-duration:2.75s}[data-aos][data-aos][data-aos-delay="2750"],body[data-aos-delay="2750"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2750"].aos-animate,body[data-aos-delay="2750"] [data-aos].aos-animate{transition-delay:2.75s}[data-aos][data-aos][data-aos-duration="2800"],body[data-aos-duration="2800"] [data-aos]{transition-duration:2.8s}[data-aos][data-aos][data-aos-delay="2800"],body[data-aos-delay="2800"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2800"].aos-animate,body[data-aos-delay="2800"] [data-aos].aos-animate{transition-delay:2.8s}[data-aos][data-aos][data-aos-duration="2850"],body[data-aos-duration="2850"] [data-aos]{transition-duration:2.85s}[data-aos][data-aos][data-aos-delay="2850"],body[data-aos-delay="2850"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2850"].aos-animate,body[data-aos-delay="2850"] [data-aos].aos-animate{transition-delay:2.85s}[data-aos][data-aos][data-aos-duration="2900"],body[data-aos-duration="2900"] [data-aos]{transition-duration:2.9s}[data-aos][data-aos][data-aos-delay="2900"],body[data-aos-delay="2900"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2900"].aos-animate,body[data-aos-delay="2900"] [data-aos].aos-animate{transition-delay:2.9s}[data-aos][data-aos][data-aos-duration="2950"],body[data-aos-duration="2950"] [data-aos]{transition-duration:2.95s}[data-aos][data-aos][data-aos-delay="2950"],body[data-aos-delay="2950"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2950"].aos-animate,body[data-aos-delay="2950"] [data-aos].aos-animate{transition-delay:2.95s}[data-aos][data-aos][data-aos-duration="3000"],body[data-aos-duration="3000"] [data-aos]{transition-duration:3s}[data-aos][data-aos][data-aos-delay="3000"],body[data-aos-delay="3000"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="3000"].aos-animate,body[data-aos-delay="3000"] [data-aos].aos-animate{transition-delay:3s}[data-aos][data-aos][data-aos-easing=linear],body[data-aos-easing=linear] [data-aos]{transition-timing-function:cubic-bezier(.25,.25,.75,.75)}[data-aos][data-aos][data-aos-easing=ease],body[data-aos-easing=ease] [data-aos]{transition-timing-function:ease}[data-aos][data-aos][data-aos-easing=ease-in],body[data-aos-easing=ease-in] [data-aos]{transition-timing-function:ease-in}[data-aos][data-aos][data-aos-easing=ease-out],body[data-aos-easing=ease-out] [data-aos]{transition-timing-function:ease-out}[data-aos][data-aos][data-aos-easing=ease-in-out],body[data-aos-easing=ease-in-out] [data-aos]{transition-timing-function:ease-in-out}[data-aos][data-aos][data-aos-easing=ease-in-back],body[data-aos-easing=ease-in-back] [data-aos]{transition-timing-function:cubic-bezier(.6,-.28,.735,.045)}[data-aos][data-aos][data-aos-easing=ease-out-back],body[data-aos-easing=ease-out-back] [data-aos]{transition-timing-function:cubic-bezier(.175,.885,.32,1.275)}[data-aos][data-aos][data-aos-easing=ease-in-out-back],body[data-aos-easing=ease-in-out-back] [data-aos]{transition-timing-function:cubic-bezier(.68,-.55,.265,1.55)}[data-aos][data-aos][data-aos-easing=ease-in-sine],body[data-aos-easing=ease-in-sine] [data-aos]{transition-timing-function:cubic-bezier(.47,0,.745,.715)}[data-aos][data-aos][data-aos-easing=ease-out-sine],body[data-aos-easing=ease-out-sine] [data-aos]{transition-timing-function:cubic-bezier(.39,.575,.565,1)}[data-aos][data-aos][data-aos-easing=ease-in-out-sine],body[data-aos-easing=ease-in-out-sine] [data-aos]{transition-timing-function:cubic-bezier(.445,.05,.55,.95)}[data-aos][data-aos][data-aos-easing=ease-in-quad],body[data-aos-easing=ease-in-quad] [data-aos]{transition-timing-function:cubic-bezier(.55,.085,.68,.53)}[data-aos][data-aos][data-aos-easing=ease-out-quad],body[data-aos-easing=ease-out-quad] [data-aos]{transition-timing-function:cubic-bezier(.25,.46,.45,.94)}[data-aos][data-aos][data-aos-easing=ease-in-out-quad],body[data-aos-easing=ease-in-out-quad] [data-aos]{transition-timing-function:cubic-bezier(.455,.03,.515,.955)}[data-aos][data-aos][data-aos-easing=ease-in-cubic],body[data-aos-easing=ease-in-cubic] [data-aos]{transition-timing-function:cubic-bezier(.55,.085,.68,.53)}[data-aos][data-aos][data-aos-easing=ease-out-cubic],body[data-aos-easing=ease-out-cubic] [data-aos]{transition-timing-function:cubic-bezier(.25,.46,.45,.94)}[data-aos][data-aos][data-aos-easing=ease-in-out-cubic],body[data-aos-easing=ease-in-out-cubic] [data-aos]{transition-timing-function:cubic-bezier(.455,.03,.515,.955)}[data-aos][data-aos][data-aos-easing=ease-in-quart],body[data-aos-easing=ease-in-quart] [data-aos]{transition-timing-function:cubic-bezier(.55,.085,.68,.53)}[data-aos][data-aos][data-aos-easing=ease-out-quart],body[data-aos-easing=ease-out-quart] [data-aos]{transition-timing-function:cubic-bezier(.25,.46,.45,.94)}[data-aos][data-aos][data-aos-easing=ease-in-out-quart],body[data-aos-easing=ease-in-out-quart] [data-aos]{transition-timing-function:cubic-bezier(.455,.03,.515,.955)}[data-aos^=fade][data-aos^=fade]{opacity:0;transition-property:opacity,transform}[data-aos^=fade][data-aos^=fade].aos-animate{opacity:1;transform:translateZ(0)}[data-aos=fade-up]{transform:translate3d(0,100px,0)}[data-aos=fade-down]{transform:translate3d(0,-100px,0)}[data-aos=fade-right]{transform:translate3d(-100px,0,0)}[data-aos=fade-left]{transform:translate3d(100px,0,0)}[data-aos=fade-up-right]{transform:translate3d(-100px,100px,0)}[data-aos=fade-up-left]{transform:translate3d(100px,100px,0)}[data-aos=fade-down-right]{transform:translate3d(-100px,-100px,0)}[data-aos=fade-down-left]{transform:translate3d(100px,-100px,0)}[data-aos^=zoom][data-aos^=zoom]{opacity:0;transition-property:opacity,transform}[data-aos^=zoom][data-aos^=zoom].aos-animate{opacity:1;transform:translateZ(0) scale(1)}[data-aos=zoom-in]{transform:scale(.6)}[data-aos=zoom-in-up]{transform:translate3d(0,100px,0) scale(.6)}[data-aos=zoom-in-down]{transform:translate3d(0,-100px,0) scale(.6)}[data-aos=zoom-in-right]{transform:translate3d(-100px,0,0) scale(.6)}[data-aos=zoom-in-left]{transform:translate3d(100px,0,0) scale(.6)}[data-aos=zoom-out]{transform:scale(1.2)}[data-aos=zoom-out-up]{transform:translate3d(0,100px,0) scale(1.2)}[data-aos=zoom-out-down]{transform:translate3d(0,-100px,0) scale(1.2)}[data-aos=zoom-out-right]{transform:translate3d(-100px,0,0) scale(1.2)}[data-aos=zoom-out-left]{transform:translate3d(100px,0,0) scale(1.2)}[data-aos^=slide][data-aos^=slide]{transition-property:transform}[data-aos^=slide][data-aos^=slide].aos-animate{transform:translateZ(0)}[data-aos=slide-up]{transform:translate3d(0,100%,0)}[data-aos=slide-down]{transform:translate3d(0,-100%,0)}[data-aos=slide-right]{transform:translate3d(-100%,0,0)}[data-aos=slide-left]{transform:translate3d(100%,0,0)}[data-aos^=flip][data-aos^=flip]{-webkit-backface-visibility:hidden;backface-visibility:hidden;transition-property:transform}[data-aos=flip-left]{transform:perspective(2500px) rotateY(-100deg)}[data-aos=flip-left].aos-animate{transform:perspective(2500px) rotateY(0)}[data-aos=flip-right]{transform:perspective(2500px) rotateY(100deg)}[data-aos=flip-right].aos-animate{transform:perspective(2500px) rotateY(0)}[data-aos=flip-up]{transform:perspective(2500px) rotateX(-100deg)}[data-aos=flip-up].aos-animate{transform:perspective(2500px) rotateX(0)}[data-aos=flip-down]{transform:perspective(2500px) rotateX(100deg)}[data-aos=flip-down].aos-animate{transform:perspective(2500px) rotateX(0)}*{border:0;margin:0;padding:0}*,:after,:before{box-sizing:border-box}#app,body,html{font-size:100%;height:100%;width:100%}#app:active,#app:focus,a:active,a:focus,body:active,body:focus,html:active,html:focus{outline:none}a,a:hover,a:visited{color:inherit;text-decoration:none!important}aside,footer,header,nav{display:block}button,input,textarea{font-family:inherit}input::-ms-clear{display:none}button{cursor:pointer}ul li{list-style:none}img{vertical-align:top}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{padding-left:1.5rem;padding-right:1.5rem;width:100%}.container{margin:0 auto;max-width:1360px}@media (max-width:1400px){.container{max-width:1200px}}@media (max-width:1200px){.container{max-width:1000px}}@media (max-width:922px){.container{max-width:750px}}@media (max-width:767px){.container{margin:0;max-width:none}}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{padding-left:1.5rem;padding-right:1.5rem}.row{margin-left:-1.5rem;margin-right:-1.5rem}html{font-size:62.5%}body{font-feature-settings:normal;font-smooth:auto;font-family:Montserrat,sans-serif;font-size:1.6rem;font-variant:normal;font-weight:500;letter-spacing:normal;line-height:2.4rem;margin:0;overflow-x:hidden;position:relative;transition:background-color .1s ease-out}.theapp{background:#1e1e20;transition:background .3s}.theapp.page_theme_light{background:#f3f3fb}img.lazy{opacity:0;transition:all .3s ease-out}img.lazy[lazy=loaded]{opacity:1}.title{color:#fff;font-family:Druk Cyr;font-size:4.8rem;font-weight:900;letter-spacing:.08em;line-height:6rem;margin-bottom:1.6rem;text-transform:uppercase}.desc{color:hsla(0,0%,100%,.6);font-size:1.6rem;font-weight:500;letter-spacing:normal;line-height:1.5em;margin-bottom:4rem}.back{-webkit-text-fill-color:transparent;text-fill-color:transparent;background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);-webkit-background-clip:text;background-clip:text;display:inline-flex;transition:all .3s ease-out}.back:hover{letter-spacing:.1rem}.back img{margin-right:1.2rem}body.body-overflow{overflow:hidden}.pre-title{margin:0 0 1.6rem}@media (max-width:991px){.pre-title{margin:0 0 1.2rem}}.pre-title span{background:#27273e;border-radius:1.2rem;box-shadow:0 0 1px rgba(20,16,41,.4),0 2px 4px -1px rgba(20,16,41,.24),0 8px 8px -4px rgba(20,16,41,.24);color:#fff;display:inline-flex;font-size:1.6rem;font-weight:700;letter-spacing:normal;line-height:1.2em;padding:.6rem 1.2rem}@media (max-width:991px){.pre-title span{background:rgba(224,224,255,.02);box-shadow:none;color:#fff;font-size:1.2rem;font-weight:500;letter-spacing:normal;line-height:1.6em;padding:1.2rem 2.4rem}}.page_theme_light .theapp{background:#f3f3fb;transition:background .3s}.page_theme_light .title{color:#282a2e}.page_theme_light .desc{color:rgba(40,42,46,.6)}.page_theme_light .pre-title span{background:hsla(0,0%,100%,.92);box-shadow:none;color:#282a2e}@media (max-width:991px){.page_theme_light .pre-title span{background:hsla(0,0%,100%,.92);box-shadow:none;color:#282a2e}}.f-input{background:transparent;background:#1e1e20;border-radius:1rem;color:#fff;display:block;font-size:1.6rem;font-weight:500;letter-spacing:normal;line-height:2.4rem;padding:1.2em 2rem;transition:all .3s ease-out;width:100%}.f-input__border{background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);border-radius:1.2rem;padding:2px;width:100%}.f-input:focus{outline:none}.f-input::placeholder{color:hsla(0,0%,100%,.68)}.f-input__error{dispaly:block;color:red;font-size:1.3rem;font-weight:500;letter-spacing:normal;line-height:1.23em;padding-top:.8rem;position:relative;transition:all .3s ease-out}.f-input__wrapper{align-items:flex-start;display:flex;flex-direction:column;margin-bottom:2.4rem;position:relative}.f-input__label{color:hsla(0,0%,100%,.68);display:block;font-size:1.6rem;font-weight:500;letter-spacing:normal;line-height:2rem;margin-bottom:.8rem}.page_theme_light .f-input{background:#fff;color:#282a2e;transition:all .3s ease-out}.page_theme_light .f-input::placeholder{color:rgba(40,42,46,.4)}.page_theme_light .f-input:focus{outline:none}.page_theme_light .f-input__label{color:rgba(40,42,46,.68)}.content h1{color:#fff;font-size:4.8rem;font-weight:1000;letter-spacing:.08em;line-height:6rem;margin:0 0 2rem}.content h2,.content h3,.content h4,.content h5,.content h6{color:#fff;font-size:2rem;font-weight:700;letter-spacing:normal;line-height:2.8rem;margin:1.2rem 0 1.6rem}.content ol,.content p,.content ul{color:hsla(0,0%,100%,.68);font-size:1.4remx;font-weight:500;letter-spacing:normal;line-height:2.4rem;margin-bottom:3.6rem;position:relative;z-index:5}.content ol{list-style-type:decimal;margin-left:20px}.content figure{display:block;margin:1.2rem 0 4.8rem;position:relative}.content figure img{border-radius:2.4rem;height:auto!important;max-width:100%!important;width:100%!important;z-index:10}@media (max-width:991px){.content figure img{border-radius:1.2rem}}.content figure figcaption{color:hsla(0,0%,100%,.68);display:block;font-size:1.4remx;font-weight:500;letter-spacing:normal;line-height:2.4rem;margin-top:8px;text-align:center;width:100%}.content li{margin-bottom:3.2rem;position:relative}.content li:last-child{margin-bottom:0}.content ol,.content ul{margin-bottom:4.8rem}.content ul li{padding-left:3rem}.content ul li:after{background-color:hsla(0,0%,100%,.68);border-radius:50%;content:" ";display:block;height:8px;left:4px;position:absolute;top:8px;width:8px}.content ul.list li:after{background-color:hsla(0,0%,100%,.68);height:10px;width:14px}.page_theme_light .content h1,.page_theme_light .content h2,.page_theme_light .content h3,.page_theme_light .content h4,.page_theme_light .content h5,.page_theme_light .content h6{color:#282a2e}.page_theme_light .content figure figcaption,.page_theme_light .content ol,.page_theme_light .content p,.page_theme_light .content ul{color:rgba(40,42,46,.68)}.page_theme_light .content ul li:after,.page_theme_light .content ul.list li:after{background-color:rgba(40,42,46,.68)}.main{display:block;overflow:hidden}.main,.theapp{position:relative}.theapp{display:flex;flex-direction:column;min-height:100%}.theapp footer{margin-top:auto}#app{font-family:Montserrat,sans-serif}.no-scroll{height:100vh!important;overflow-y:hidden}.page_theme_dark .content-base{background-color:#1e1e20!important;color:#fff}.page_theme_light .content-base{background-color:#f3f3fb!important;color:#282a2e}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format("woff2");unicode-range:u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format("woff2");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format("woff2");unicode-range:u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format("woff2");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format("woff2");unicode-range:u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format("woff2");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format("woff2");unicode-range:u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format("woff2");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format("woff2");unicode-range:u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format("woff2");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(https://fonts.gstatic.com/s/montserrat/v24/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Druk Cyr;font-style:normal;font-weight:900;src:local("Druk Cyr Heavy"),local("Druk-Cyr-Heavy"),url(/static/DrukCyr-Heavy-dbe98c3c47c45d1ed488952e7008eaf5.woff2) format("woff2"),url(/static/DrukCyr-Heavy-3e3707cb025e23fc8dfc4ad93ec08ee3.woff) format("woff"),url(/static/DrukCyr-Heavy-a894eb7ec19868f184d7b33b0d74d558.ttf) format("truetype")}.logo{margin-right:4.8rem}@media (max-width:1200px){.logo{margin-right:2.4rem}}.mobile__action{align-items:center;display:flex;height:4rem;justify-content:center;width:4rem}.nav a{color:#fff;display:inline-block;font-size:1.4rem;font-weight:600;letter-spacing:normal;line-height:2.4em;transition:all .3s ease-out}.nav a,.nav a:hover{opacity:.68}.nav a.router-link-exact-active{opacity:1}.nav a:not(:last-child){margin-right:4.8rem}@media (max-width:1200px){.nav a:not(:last-child){margin-right:2.4rem}}.header{-webkit-backdrop-filter:blur(108.731px);backdrop-filter:blur(108.731px);background:linear-gradient(135deg,rgba(245,247,250,.12),rgba(245,247,250,.06) 52.14%,rgba(245,247,250,0));border:1px solid rgba(245,247,250,.06);box-shadow:0 1px 1px rgba(9,13,20,.4),-4px -4px 8px rgba(224,224,255,.04);box-sizing:border-box;left:0;padding:2.6rem 0 2.1rem;position:fixed;top:0;width:100%;z-index:300}@media (max-width:991px){.header{padding:.8rem 0}}.header__soc{gap:0 .8rem}.page_theme_light .header{-webkit-backdrop-filter:blur(108.731px);backdrop-filter:blur(108.731px);background:linear-gradient(135deg,rgba(245,247,250,.12),rgba(245,247,250,.06) 52.14%,rgba(245,247,250,0));border:1px solid rgba(245,247,250,.06);box-shadow:0 1px 1px hsla(0,0%,100%,.4),-4px -4px 8px hsla(0,0%,100%,.04)}.page_theme_light .nav a{color:#282a2e}.logo{align-items:center;color:#fff;display:flex;font-size:1.6rem;font-weight:700;justify-content:flex-start;letter-spacing:normal;line-height:2.4rem;text-transform:uppercase}.logo span{color:#fff;padding-left:1.2rem}.page_theme_light .logo,.page_theme_light .logo span{color:#282a2e}.soc{display:flex;justify-content:space-between}.soc,.soc a{align-items:center}.soc a{background:hsla(0,0%,100%,.06);border-radius:50%;display:inline-flex;height:2.8rem;justify-content:center;min-width:2.8rem;transition:all .3s ease-out;width:2.8rem}.soc a path{fill:#fff}.soc a:hover{background:hsla(0,0%,100%,.12)}.page_theme_light .soc a{background:rgba(40,42,46,.06)}.page_theme_light .soc a path{fill:#282a2e!important}.page_theme_light .soc a:hover{background:rgba(40,42,46,.12)}.theme__switcher{background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);border-radius:60px;height:40px;padding:1px;position:relative;width:68px}.theme__switcher-inner{align-items:center;background:#1e1e20;border-radius:6rem;color:#fff;cursor:pointer;display:flex;height:100%;justify-content:space-between;padding:0 .4rem;position:relative}.theme__switcher-overlay{border-radius:6rem;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;z-index:10}.theme__switcher-icon{align-items:center;border-radius:50%;display:flex;height:2.8rem;justify-content:center;min-width:2.8rem;width:2.8rem}.theme__switcher-icon-active{background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);box-shadow:0 1px 0 #df6a83,0 3px 5px rgba(0,0,0,.13),0 4px 10px rgba(253,53,71,.38)}.page_theme_light .theme__switcher-inner{background:#fff}.page_theme_light .theme__switcher-icon path{fill:#231f20}.page_theme_light .theme__switcher-icon-active path{fill:#fff}.lang{display:inline-block;position:relative}.lang__switcher{background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);border-radius:6rem;height:4rem;padding:1px;position:relative;width:10rem}.lang__switcher-active .lang__switcher-icon{transform:rotate(180deg)}.lang__switcher-inner{align-items:center;background:#1e1e20;border-radius:6rem;color:#fff;cursor:pointer;display:flex;height:100%;justify-content:center;padding:0 .4rem;position:relative}.lang__switcher-text{padding:0 .8rem}.lang__switcher-icon{transition:all .3s ease-out}.lang__switcher-flag img{border-radius:.2rem}.lang__switcher-flag,.lang__switcher-icon{align-items:center;display:flex;height:2.8rem;justify-content:center}.lang__drop{background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);border-radius:2.4rem;padding:.1rem;position:absolute;top:100%;width:10rem}.lang__drop-inner{background:#1e1e20;border-radius:2.4rem;color:#fff;cursor:pointer;display:flex;flex-direction:column;padding:1.2rem 0;position:relative}.lang__drop-line{align-items:center;display:flex;justify-content:flex-start;padding:.4rem 1.3rem}.page_theme_light .lang__switcher-inner{background:#fff;color:#231f20}.page_theme_light .lang__switcher-icon path{fill:#231f20}.page_theme_light .lang__drop-inner{background:#fff;color:#231f20}.mobilemenu{align-items:center;background:#1e1e20 url(/static/bg-mobile-dark-d5b532d922b719174fbd7bf381a7de3d.png) no-repeat 40% 0;bottom:0;display:flex;flex-direction:column;height:100vh;left:0;min-height:100vh;padding-top:8rem;position:fixed;right:0;top:0;width:100%;z-index:250}.mobilemenu__soc{background:rgba(224,224,255,.06);border-radius:4rem;gap:0 1.2rem;margin:2rem;padding:1.6rem}.mobilemenu__nav{align-items:center;color:#fff;display:flex;flex-direction:column;flex-grow:1;justify-content:center}.mobilemenu__nav a:not(:last-child){margin-bottom:4rem}.mobilemenu__langs .lang__drop{bottom:100%;top:auto}.page_theme_light .mobilemenu{background:#fff url(/static/bg-mobile-light-aa8b73050384acf27286b888f3864cf4.png) no-repeat 40% 0}.page_theme_light .mobilemenu__soc{background:rgba(40,42,46,.06)}.page_theme_light .mobilemenu__nav a{color:#282a2e}.footer{padding:0 0 2.2rem}@media (max-width:991px){.footer{padding-bottom:3.2rem}}.footer-line{border:1px solid #fff;margin:0 0 2.2rem;opacity:.1}@media (max-width:991px){.footer-line{margin-bottom:3.2rem}.footer-logo{justify-content:center;margin-bottom:2rem}}.footer-soc .soc{justify-content:center}.footer-soc .soc a:not(:last-child){margin-right:1.6rem}.footer__links{padding-bottom:1.5rem}.footer__links--ml13{margin-left:13rem}@media (max-width:991px){.footer__links--ml13{margin-left:0}}.footer__links-title{color:#fff;font-size:1.3rem;font-weight:600;letter-spacing:1px;line-height:1.23em;margin:0 0 1.6rem;text-transform:uppercase}.footer__links-items{align-items:flex-start;display:flex;flex-direction:column}.footer__links-item{color:rgba(224,224,255,.6);font-size:1.4rem;font-weight:500;letter-spacing:normal;line-height:1.71em;transition:all .3s ease-out}.footer__links-item.active,.footer__links-item:hover,.footer__links-item:visited{color:#fff;transform:translateX(.4rem)}.footer__links-item:not(:last-child){margin-bottom:.4rem}.legal-docs{align-items:center;color:#fff;display:flex;font-size:1.2rem;font-weight:400;justify-content:flex-end;letter-spacing:normal;line-height:2.4rem}@media (max-width:991px){.legal-docs{justify-content:center;margin-top:2rem}}.legal-docs a{align-items:center;display:inline-flex;font-weight:600;justify-content:center}.legal-docs a svg{margin-left:.8rem}.page_theme_light .author{color:#282a2e}.page_theme_light .author path{fill:rgba(40,42,46,.8)}.page_theme_light .footer__links-item,.page_theme_light .footer__links-title{color:#282a2e}.page_theme_light .footer-line{border:1px solid #282a2e}.section-start{box-sizing:border-box;color:#fff;min-height:83.6rem;overflow:hidden;padding:13rem 0 0;position:relative}@media (max-width:991px){.section-start{min-height:0;padding:13rem 0 7.2rem}}.section-start .relative{z-index:10}.section-start .pre-title{margin-top:9rem}@media (max-width:991px){.section-start .pre-title{margin-top:-2rem}}.section-start h1{color:#fff;font-family:Druk Cyr;font-size:9.2rem;font-weight:900;letter-spacing:.02em;line-height:10rem;margin-bottom:1.6rem;text-transform:uppercase}@media (max-width:991px){.section-start h1{font-size:8.2rem}}@media (max-width:768px){.section-start h1{font-size:5.4rem;font-weight:900;letter-spacing:.08em;line-height:6rem}}.start-btns{align-items:center;display:inline-flex;justify-content:flex-start}.start-btns .btn:not(:last-child){margin-right:4.8rem}.start__image{position:relative}@media (max-width:991px){.start__image{align-items:flex-start;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:1}}.start__image:before{background:linear-gradient(180deg,rgba(30,30,32,0),#1e1e20);bottom:0;content:" ";height:10rem;left:0;position:absolute;right:-100vw;z-index:3}@media (max-width:991px){.start__image:before{height:auto;top:0}.start__image img{position:relative;transform:translateX(250px);z-index:2}}.page_theme_light .section-start,.page_theme_light .section-start h1{color:#282a2e}.page_theme_light .start__image:before{background:linear-gradient(180deg,rgba(243,243,251,0),#f3f3fb)}.section-portfolio{padding:6rem 0 10rem;position:relative;z-index:1}.section-portfolio .container{position:relative;z-index:10}.portfolio__more .button{width:100%!important}.portfolio__tabs{display:flex;flex-wrap:wrap;padding-bottom:2.8rem}@media (max-width:576px){.portfolio__tabs{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;margin:0 -1.5rem 2.8rem;overflow:scroll;padding:0 1.5rem;white-space:nowrap}.portfolio__tabs::-webkit-scrollbar-track{background-color:transparent}.portfolio__tabs::-webkit-scrollbar{background-color:transparent;display:none}.portfolio__tabs::-webkit-scrollbar-thumb{background-color:transparent}}.portfolio__tab{margin-bottom:1.2rem;margin-right:1.2rem}.portfolio{border-radius:3.2rem;display:flex;height:100%;padding-bottom:2.4rem;width:100%}@media (max-width:991px){.portfolio{height:auto;margin-bottom:1.2rem}}.portfolio-content{padding:4rem 2rem 0 6rem}@media (max-width:991px){.portfolio-content{padding:0 3.2rem 3.2rem}}.portfolio-item{-webkit-backdrop-filter:blur(108.731px);backdrop-filter:blur(108.731px);background:linear-gradient(135deg,rgba(245,247,250,.12),rgba(245,247,250,.06) 52.14%,rgba(245,247,250,0));border:1px solid rgba(245,247,250,.06);border-radius:2.4rem;box-shadow:0 1px 1px rgba(9,13,20,.4),-4px -4px 8px rgba(224,224,255,.04),8px 8px 24px rgba(9,13,20,.4);display:flex;flex-direction:column;min-height:51rem;padding:3.2rem;position:relative;width:100%}.portfolio-item__img{align-items:center;border-radius:2.4rem 2.4rem 0 0;display:flex;justify-content:center;margin:-3.2rem -3.2rem 2.4rem;object-fit:cover;overflow:hidden}.portfolio-item__img img{max-width:100%;object-fit:cover;width:100%}.portfolio-item__date{color:#fff;font-size:1.4rem;font-weight:500;line-height:2rem;margin-bottom:2.4rem}.portfolio-item__date span{background:rgba(224,224,255,.02);border-radius:90px;display:inline-block;padding:1.2rem 2.4rem}.portfolio-item__title{color:#fff;font-size:2rem;font-weight:700;line-height:2.8rem;margin-bottom:1.2rem}.portfolio-item__desc{color:#fff;font-size:1.6rem;font-weight:500;line-height:2.4rem;opacity:.68;padding:0 0 2.4rem}.portfolio-item__link{margin-top:auto}.portfolio-item__big{flex-direction:row;padding:0}@media (max-width:991px){.portfolio-item__big{flex-direction:column}}.portfolio-item__big .portfolio-item__img{align-items:unset;border-radius:2.4rem 0 0 2.4rem;margin:0;min-width:384px;overflow:hidden;width:384px}@media (max-width:1200px){.portfolio-item__big .portfolio-item__img{min-width:200px;object-fit:cover;overflow:hidden;width:200px}}@media (max-width:991px){.portfolio-item__big .portfolio-item__img{border-radius:2.4rem 2.4rem 0 0;margin:0 0 2.4rem;min-width:unset;object-fit:cover;overflow:hidden;width:100%}}.portfolio-item__big .portfolio-item__img img{min-width:384px;width:384px}@media (max-width:991px){.portfolio-item__big .portfolio-item__img img{min-width:100%;width:100%}}.page_theme_light .portfolio-item{background:hsla(0,0%,100%,.4);border:1px solid rgba(245,247,250,.06);box-shadow:0 1px 1px hsla(0,0%,100%,.8),-4px -4px 16px hsla(0,0%,100%,.24),8px 8px 24px hsla(0,0%,93%,.8)}.page_theme_light .portfolio-item__date{color:#282a2e}.page_theme_light .portfolio-item__date span{background:rgba(40,42,46,.02)}.page_theme_light .portfolio-item__desc,.page_theme_light .portfolio-item__title{color:#282a2e}.main{padding:7.2rem 0 0}.section-second-page{display:block;overflow:hidden;padding:8rem 0 10rem;position:relative;z-index:1}.section-second-page .container{position:relative;z-index:5}.round{position:absolute;z-index:2}.round-1{background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);border-radius:50%;height:36rem;left:calc(50% + 14rem);top:13rem;width:36rem}@media (max-width:991px){.round-1{height:16.7px;width:16.7px}}.round-2{background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);border-radius:50%;height:27.4rem;left:-8rem;top:-3rem;width:27.4rem}@media (max-width:991px){.round-2{height:14.5rem;left:-5rem;top:-9rem;width:14.5rem}}@media print{body,html{color:#282a2e!important}}table{border:2px solid #2a1a1a;border-collapse:collapse;font-family:sans-serif;font-size:.8rem;letter-spacing:1px;width:100%}caption{caption-side:bottom;font-weight:700;padding:10px}tfoot,thead{background-color:#e4f0f5}td,th{border:1px solid #a0a0a0;padding:8px 10px}td:last-of-type{text-align:center}tbody>tr:nth-of-type(2n){background-color:#edeef2}tfoot th{text-align:right}tfoot td{font-weight:700}.content p{margin-bottom:.8rem!important}.curriculum-vitae .button-size-static{width:16rem}.second-page__nav{display:flex;gap:4rem;margin-top:4.8rem}@media (max-width:576px){.second-page__nav{flex-direction:column;gap:1.2rem}}.second-page__nav-item{background:rgba(224,224,255,.02);border:1px solid rgba(245,247,250,.06);border-radius:2.4rem;padding:2.4rem;width:calc(50% - 2rem)}@media (max-width:576px){.second-page__nav-item{padding:1.6rem;width:100%}}.second-page__nav-title{color:#fff;display:block;font-weight:600;margin-bottom:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.second-page__nav-link{-webkit-text-fill-color:transparent;text-fill-color:transparent;background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);-webkit-background-clip:text;background-clip:text;display:flex}.second-page__nav-link a{display:inline-flex;transition:all .3s ease-out}.second-page__nav-link a:hover{letter-spacing:.1rem}.second-page__nav-link svg{margin-right:1.2rem}.second-page__nav-right .blog__nav-link{justify-content:flex-end}.second-page__nav-right .blog__nav-link svg{margin-left:1.2rem}.page_theme_light .second-page__nav-item{-webkit-backdrop-filter:blur(108.731px);backdrop-filter:blur(108.731px);background:hsla(0,0%,100%,.4);border:1px solid rgba(245,247,250,.06);box-shadow:0 1px 1px hsla(0,0%,100%,.8),-4px -4px 16px hsla(0,0%,100%,.24),8px 8px 24px hsla(0,0%,93%,.8)}.page_theme_light .second-page__nav-title{color:#282a2e}.section-portfolio-page{padding:0 0 10rem;position:relative;z-index:1}.section-portfolio-page .container{position:relative;z-index:10}.portfolio-page__more .button{width:100%!important}.portfolio-page__tabs{display:flex;flex-wrap:wrap;padding-bottom:2.8rem}@media (max-width:576px){.portfolio-page__tabs{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;margin:0 -1.5rem 2.8rem;overflow:scroll;padding:0 1.5rem;white-space:nowrap}.portfolio-page__tabs::-webkit-scrollbar-track{background-color:transparent}.portfolio-page__tabs::-webkit-scrollbar{background-color:transparent;display:none}.portfolio-page__tabs::-webkit-scrollbar-thumb{background-color:transparent}}.portfolio-page__tab{margin-bottom:1.2rem;margin-right:1.2rem}.portfolio-page{border-radius:3.2rem;display:flex;height:100%;padding-bottom:2.4rem;width:100%}.portfolio-page-content{padding:4rem 2rem 0 6rem}.portfolio-page-item{-webkit-backdrop-filter:blur(108.731px);backdrop-filter:blur(108.731px);background:linear-gradient(135deg,rgba(245,247,250,.12),rgba(245,247,250,.06) 52.14%,rgba(245,247,250,0));border:1px solid rgba(245,247,250,.06);border-radius:2.4rem;box-shadow:0 1px 1px rgba(9,13,20,.4),-4px -4px 8px rgba(224,224,255,.04),8px 8px 24px rgba(9,13,20,.4);display:flex;flex-direction:column;min-height:51rem;padding:3.2rem;position:relative;width:100%}.portfolio-page-item__img{align-items:center;border-radius:2.4rem 2.4rem 0 0;display:flex;justify-content:center;margin:-3.2rem -3.2rem 2.4rem;object-fit:cover;overflow:hidden}.portfolio-page-item__img img{max-width:100%;object-fit:cover;width:100%}.portfolio-page-item__date{color:#fff;font-size:1.4rem;font-weight:500;line-height:2rem;margin-bottom:2.4rem}.portfolio-page-item__date span{background:rgba(224,224,255,.02);border-radius:90px;display:inline-block;padding:1.2rem 2.4rem}.portfolio-page-item__title{color:#fff;font-size:2rem;font-weight:700;line-height:2.8rem;margin-bottom:1.2rem}.portfolio-page-item__desc{color:#fff;font-size:1.6rem;font-weight:500;line-height:2.4rem;opacity:.68;padding:0 0 2.4rem}.portfolio-page-item__link{margin-top:auto}.portfolio-page-item__big{flex-direction:row;padding:0}.portfolio-page-item__big .portfolio-page-item__img{align-items:unset;border-radius:2.4rem 0 0 2.4rem;margin:0;min-width:384px;overflow:hidden;width:384px}.portfolio-page-item__big .portfolio-page-item__img img{min-width:384px;width:384px}.page_theme_light .portfolio-page-item{background:hsla(0,0%,100%,.4);border:1px solid rgba(245,247,250,.06);box-shadow:0 1px 1px hsla(0,0%,100%,.8),-4px -4px 16px hsla(0,0%,100%,.24),8px 8px 24px hsla(0,0%,93%,.8)}.page_theme_light .portfolio-page-item__date{color:#282a2e}.page_theme_light .portfolio-page-item__date span{background:rgba(40,42,46,.02)}.page_theme_light .portfolio-page-item__desc,.page_theme_light .portfolio-page-item__title{color:#282a2e}.gradient-round{position:absolute;z-index:2}.gradient-round-1{background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);border-radius:50%;height:41rem;left:calc(50% + 35rem);top:30rem;width:41rem}@media (max-width:991px){.gradient-round-1{bottom:46rem;height:14rem;left:auto;right:-4rem;top:auto;width:14rem}.gradient-round-2{background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);border-radius:50%;bottom:7rem;height:26rem;left:-7rem;width:26rem}}.gradient-round-blog-1{background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);border-radius:50%;height:36rem;left:calc(50% + 14rem);top:13rem;width:36rem}@media (max-width:991px){.gradient-round-blog-1{height:16.7px;width:16.7px}}.gradient-round-blog-2{background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);border-radius:50%;height:27.4rem;left:-8rem;top:-3rem;width:27.4rem}@media (max-width:991px){.gradient-round-blog-2{height:14.5rem;left:-5rem;top:-9rem;width:14.5rem}}.inner__link{-webkit-text-fill-color:transparent;text-fill-color:transparent;background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);-webkit-background-clip:text;background-clip:text;display:inline-flex;transition:all .3s ease-out}.inner__link:hover{letter-spacing:.1rem}.inner__link img{margin-right:1.2rem}.section-projects{overflow:hidden;padding:6rem 0;position:relative}.section-projects .projects-round{background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);border-radius:50%;height:291px;position:absolute;right:calc(50% + 40rem);top:5rem;width:291px;z-index:1}@media (max-width:991px){.section-projects .projects-round{height:13.5rem;left:-4rem;top:3rem;width:13.5rem}}.section-projects .container{position:relative;z-index:5}.project{border-radius:3.2rem;display:flex;height:100%;width:100%}@media (max-width:991px){.project{height:auto;margin-bottom:1.2rem}}.project-item{-webkit-backdrop-filter:blur(108.731px);backdrop-filter:blur(108.731px);background:linear-gradient(135deg,rgba(245,247,250,.12),rgba(245,247,250,.06) 52.14%,rgba(245,247,250,0));border:1px solid rgba(245,247,250,.06);border-radius:24px;box-shadow:0 1px 1px rgba(9,13,20,.4),-4px -4px 8px rgba(224,224,255,.04),8px 8px 24px rgba(9,13,20,.4);box-shadow:0 12px 29px rgba(0,0,0,.16);display:flex;flex-direction:column;padding:4rem;position:relative;width:100%}@media (max-width:991px){.project-item{padding:3.2rem}}.project-item__icon{align-items:center;background:linear-gradient(135deg,#ff8955,#c956a0 53.01%,#7245fa 99.83%);border-radius:50%;display:flex;height:10rem;justify-content:center;margin-bottom:2.4rem;width:10rem}.project-item__icon img{height:4rem;width:4rem}.project-item__title{color:#fff;font-size:2rem;font-weight:700;line-height:2.8rem;margin-bottom:1.2rem}.project-item__desc{color:#fff;font-size:1.6rem;font-weight:500;line-height:2.4rem;margin-bottom:3.2rem;opacity:.68}@media (max-width:991px){.project-item__desc{margin-bottom:2.4rem}}.project-item__soc{background:rgba(224,224,255,.02);border-radius:7.6rem;margin-top:auto;padding:1.6rem}.page_theme_light .project-item{background:hsla(0,0%,100%,.4);border:1px solid rgba(245,247,250,.06);box-shadow:0 1px 1px hsla(0,0%,100%,.8),-4px -4px 16px hsla(0,0%,100%,.24),8px 8px 24px hsla(0,0%,93%,.8)}.page_theme_light .project-item__desc,.page_theme_light .project-item__title{color:#282a2e}.page_theme_light .project-item__soc{background:rgba(40,42,46,.02)}.section-blog{overflow:hidden;padding:6rem 0 10rem;position:relative;z-index:1}.section-blog .container{position:relative;z-index:10}.blog__more .button{width:100%!important}.blog__tabs{display:flex;flex-wrap:wrap;padding-bottom:2.8rem}@media (max-width:576px){.blog__tabs{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;margin:0 -1.5rem 2.8rem;overflow:scroll;padding:0 1.5rem;white-space:nowrap}.blog__tabs::-webkit-scrollbar-track{background-color:transparent}.blog__tabs::-webkit-scrollbar{background-color:transparent;display:none}.blog__tabs::-webkit-scrollbar-thumb{background-color:transparent}}.blog__tab{margin-bottom:1.2rem;margin-right:1.2rem}.blog{border-radius:3.2rem;display:flex;height:100%;padding-bottom:2.4rem;width:100%}@media (max-width:991px){.blog{height:auto;margin-bottom:1.2rem}}.blog-content{padding:4rem 2rem 0 6rem}@media (max-width:991px){.blog-content{padding:0 3.2rem 3.2rem}}.blog-item{-webkit-backdrop-filter:blur(108.731px);backdrop-filter:blur(108.731px);background:linear-gradient(135deg,rgba(245,247,250,.12),rgba(245,247,250,.06) 52.14%,rgba(245,247,250,0));border:1px solid rgba(245,247,250,.06);border-radius:2.4rem;box-shadow:0 1px 1px rgba(9,13,20,.4),-4px -4px 8px rgba(224,224,255,.04),8px 8px 24px rgba(9,13,20,.4);display:flex;flex-direction:column;min-height:51rem;padding:3.2rem;position:relative;width:100%}.blog-item__img{align-items:center;border-radius:2.4rem 2.4rem 0 0;display:flex;justify-content:center;margin:-3.2rem -3.2rem 2.4rem;object-fit:cover;overflow:hidden}.blog-item__img img{max-width:100%;object-fit:cover;width:100%}.blog-item__date{color:#fff;font-size:1.4rem;font-weight:500;line-height:2rem;margin-bottom:2.4rem}.blog-item__date span{background:rgba(224,224,255,.02);border-radius:90px;display:inline-block;padding:1.2rem 2.4rem}.blog-item__title{color:#fff;font-size:2rem;font-weight:700;line-height:2.8rem;margin-bottom:1.2rem}.blog-item__desc{color:#fff;font-size:1.6rem;font-weight:500;line-height:2.4rem;opacity:.68;padding:0 0 2.4rem}.blog-item__link{margin-top:auto}.blog-item__big{flex-direction:row;padding:0}@media (max-width:991px){.blog-item__big{flex-direction:column}}.blog-item__big .blog-item__img{align-items:unset;border-radius:2.4rem 0 0 2.4rem;margin:0;min-width:384px;overflow:hidden;width:384px}@media (max-width:1200px){.blog-item__big .blog-item__img{min-width:200px;object-fit:cover;overflow:hidden;width:200px}}@media (max-width:991px){.blog-item__big .blog-item__img{border-radius:2.4rem 2.4rem 0 0;margin:0 0 2.4rem;min-width:unset;object-fit:cover;overflow:hidden;width:100%}}.blog-item__big .blog-item__img img{min-width:384px;width:384px}@media (max-width:991px){.blog-item__big .blog-item__img img{min-width:100%;width:100%}}.page_theme_light .blog-item{background:hsla(0,0%,100%,.4);border:1px solid rgba(245,247,250,.06);box-shadow:0 1px 1px hsla(0,0%,100%,.8),-4px -4px 16px hsla(0,0%,100%,.24),8px 8px 24px hsla(0,0%,93%,.8)}.page_theme_light .blog-item__date{color:#282a2e}.page_theme_light .blog-item__date span{background:rgba(40,42,46,.02)}.page_theme_light .blog-item__desc,.page_theme_light .blog-item__title{color:#282a2e} \ No newline at end of file diff --git a/terms/index.html b/terms/index.html index d36f4c4..d11031f 100644 --- a/terms/index.html +++ b/terms/index.html @@ -1,10 +1,10 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/webpack-runtime-71d88bbdd2acc631a31a.js b/webpack-runtime-71d88bbdd2acc631a31a.js deleted file mode 100644 index 1abd4d8..0000000 --- a/webpack-runtime-71d88bbdd2acc631a31a.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(){"use strict";var e,o,t,n,r,c={},a={};function s(e){var o=a[e];if(void 0!==o)return o.exports;var t=a[e]={exports:{}};return c[e].call(t.exports,t,t.exports,s),t.exports}s.m=c,e=[],s.O=function(o,t,n,r){if(!t){var c=1/0;for(u=0;u=r)&&Object.keys(s.O).every((function(e){return s.O[e](t[f])}))?t.splice(f--,1):(a=!1,r0&&e[u-1][2]>r;u--)e[u]=e[u-1];e[u]=[t,n,r]},s.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(o,{a:o}),o},t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},s.t=function(e,n){if(1&n&&(e=this(e)),8&n)return e;if("object"==typeof e&&e){if(4&n&&e.__esModule)return e;if(16&n&&"function"==typeof e.then)return e}var r=Object.create(null);s.r(r);var c={};o=o||[null,t({}),t([]),t(t)];for(var a=2&n&&e;"object"==typeof a&&!~o.indexOf(a);a=t(a))Object.getOwnPropertyNames(a).forEach((function(o){c[o]=function(){return e[o]}}));return c.default=function(){return e},s.d(r,c),r},s.d=function(e,o){for(var t in o)s.o(o,t)&&!s.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:o[t]})},s.f={},s.e=function(e){return Promise.all(Object.keys(s.f).reduce((function(o,t){return s.f[t](e,o),o}),[]))},s.u=function(e){return({50:"component---src-pages-products-hotcoin-database-jsx",71:"component---src-pages-portfolio-jsx",81:"component---src-pages-blog-blog-post-jsx",96:"component---src-pages-about-jsx",124:"component---src-pages-portfolio-poolex-ai-jsx",125:"component---src-pages-services-forks-jsx",162:"component---src-pages-terms-jsx",223:"commons",237:"bc4561c4491263f162ffc1bb8e4b7c67dbc37bbc",262:"component---src-pages-portfolio-world-millionaire-challenge-jsx",279:"component---src-pages-index-jsx",285:"300e51b05a0b4b20aae48962394b29fdd9ce5498",311:"component---src-pages-projects-jsx",342:"component---src-pages-cv-jsx",393:"48961b63b6895ca1a3cfd06c6a33e8758536e77c",398:"component---src-pages-portfolio-uls-token-jsx",405:"component---src-pages-products-jsx",415:"component---src-pages-404-jsx",493:"component---src-pages-blog-jsx",594:"component---src-pages-services-telegram-bots-jsx",624:"component---src-pages-curriculum-vitae-jsx",627:"component---src-pages-portfolio-roborovski-nft-jsx",653:"component---src-pages-portfolio-fibonacci-assistant-telegram-bot-jsx",681:"component---src-pages-services-jsx",878:"component---src-pages-portfolio-grabcoinclub-nft-jsx",896:"component---src-pages-products-notcoin-database-jsx",955:"component---src-pages-privacy-jsx"}[e]||e)+"-"+{50:"8f330ba0e34ed5af0ac0",71:"de70e7a75fce95149974",81:"336e3b10d76acbdfc606",96:"2422223ec1ece726fd35",108:"c72331f2ffbe8f721e34",124:"161dd7d23320749b17f5",125:"071a6b3ca56a21d51cd6",162:"41a2a507463ee6263e44",223:"53cfea43dc27171f53ac",237:"423b7db6e7d47ce2b840",262:"4ca7085d59ae54958b53",279:"f25f74efa582a9e64cfb",285:"8528517ba86c581334ec",311:"d341f19cf9f37dab020a",342:"83a04a406da6807f0449",393:"2f81b2f96a88463aa92d",398:"9ef10f7f71133f8742da",405:"d84839a11953f029e6fa",415:"8f338da35557cc3dd150",452:"17d7bbbbf40e3d1b1b44",493:"05e3c84cf6be8f12af49",594:"81caf17fb32b15d09efb",624:"e242e7a981f4c5c9cbca",627:"d870e014c24b2f84bdbe",653:"96a9f3a372639ccb9fdc",681:"1218b41e8fda3e49c2d0",878:"a83f521c44c0a5fa8968",896:"6942f32a38f26a8abbe8",955:"007eb7fbded158316edf"}[e]+".js"},s.miniCssF=function(e){return"styles.39b9c0f790528e4559a0.css"},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=function(e,o){return Object.prototype.hasOwnProperty.call(e,o)},n={},r="ivannikov.pro-website:",s.l=function(e,o,t,c){if(n[e])n[e].push(o);else{var a,f;if(void 0!==t)for(var i=document.getElementsByTagName("script"),u=0;u 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"ivannikov.pro-website:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + ({\"50\":\"component---src-pages-products-hotcoin-database-jsx\",\"71\":\"component---src-pages-portfolio-jsx\",\"81\":\"component---src-pages-blog-blog-post-jsx\",\"96\":\"component---src-pages-about-jsx\",\"124\":\"component---src-pages-portfolio-poolex-ai-jsx\",\"125\":\"component---src-pages-services-forks-jsx\",\"162\":\"component---src-pages-terms-jsx\",\"223\":\"commons\",\"237\":\"bc4561c4491263f162ffc1bb8e4b7c67dbc37bbc\",\"262\":\"component---src-pages-portfolio-world-millionaire-challenge-jsx\",\"279\":\"component---src-pages-index-jsx\",\"285\":\"300e51b05a0b4b20aae48962394b29fdd9ce5498\",\"311\":\"component---src-pages-projects-jsx\",\"342\":\"component---src-pages-cv-jsx\",\"393\":\"48961b63b6895ca1a3cfd06c6a33e8758536e77c\",\"398\":\"component---src-pages-portfolio-uls-token-jsx\",\"405\":\"component---src-pages-products-jsx\",\"415\":\"component---src-pages-404-jsx\",\"493\":\"component---src-pages-blog-jsx\",\"594\":\"component---src-pages-services-telegram-bots-jsx\",\"624\":\"component---src-pages-curriculum-vitae-jsx\",\"627\":\"component---src-pages-portfolio-roborovski-nft-jsx\",\"653\":\"component---src-pages-portfolio-fibonacci-assistant-telegram-bot-jsx\",\"681\":\"component---src-pages-services-jsx\",\"878\":\"component---src-pages-portfolio-grabcoinclub-nft-jsx\",\"896\":\"component---src-pages-products-notcoin-database-jsx\",\"955\":\"component---src-pages-privacy-jsx\"}[chunkId] || chunkId) + \"-\" + {\"50\":\"8f330ba0e34ed5af0ac0\",\"71\":\"de70e7a75fce95149974\",\"81\":\"336e3b10d76acbdfc606\",\"96\":\"2422223ec1ece726fd35\",\"108\":\"c72331f2ffbe8f721e34\",\"124\":\"161dd7d23320749b17f5\",\"125\":\"071a6b3ca56a21d51cd6\",\"162\":\"41a2a507463ee6263e44\",\"223\":\"53cfea43dc27171f53ac\",\"237\":\"423b7db6e7d47ce2b840\",\"262\":\"4ca7085d59ae54958b53\",\"279\":\"f25f74efa582a9e64cfb\",\"285\":\"8528517ba86c581334ec\",\"311\":\"d341f19cf9f37dab020a\",\"342\":\"83a04a406da6807f0449\",\"393\":\"2f81b2f96a88463aa92d\",\"398\":\"9ef10f7f71133f8742da\",\"405\":\"d84839a11953f029e6fa\",\"415\":\"8f338da35557cc3dd150\",\"452\":\"17d7bbbbf40e3d1b1b44\",\"493\":\"05e3c84cf6be8f12af49\",\"594\":\"81caf17fb32b15d09efb\",\"624\":\"e242e7a981f4c5c9cbca\",\"627\":\"d870e014c24b2f84bdbe\",\"653\":\"96a9f3a372639ccb9fdc\",\"681\":\"1218b41e8fda3e49c2d0\",\"878\":\"a83f521c44c0a5fa8968\",\"896\":\"6942f32a38f26a8abbe8\",\"955\":\"007eb7fbded158316edf\"}[chunkId] + \".js\";\n};","// This function allow to reference all chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + \"styles\" + \".\" + \"39b9c0f790528e4559a0\" + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t692: 0,\n\t869: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(!/^(692|869)$/.test(chunkId)) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkivannikov_pro_website\"] = self[\"webpackChunkivannikov_pro_website\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","call","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","getPrototypeOf","obj","__proto__","t","value","mode","this","then","ns","create","def","current","indexOf","getOwnPropertyNames","forEach","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","miniCssF","g","globalThis","Function","window","prop","prototype","hasOwnProperty","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","p","installedChunks","installedChunkData","test","promise","resolve","reject","error","Error","errorType","realSrc","message","name","request","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","id","chunkLoadingGlobal","self"],"sourceRoot":""} \ No newline at end of file diff --git a/webpack-runtime-874880dbf195c979b1a8.js b/webpack-runtime-874880dbf195c979b1a8.js new file mode 100644 index 0000000..044d97a --- /dev/null +++ b/webpack-runtime-874880dbf195c979b1a8.js @@ -0,0 +1,2 @@ +!function(){"use strict";var e,t,o,n,r,c={},a={};function s(e){var t=a[e];if(void 0!==t)return t.exports;var o=a[e]={exports:{}};return c[e].call(o.exports,o,o.exports,s),o.exports}s.m=c,e=[],s.O=function(t,o,n,r){if(!o){var c=1/0;for(u=0;u=r)&&Object.keys(s.O).every((function(e){return s.O[e](o[f])}))?o.splice(f--,1):(a=!1,r0&&e[u-1][2]>r;u--)e[u]=e[u-1];e[u]=[o,n,r]},s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,{a:t}),t},o=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},s.t=function(e,n){if(1&n&&(e=this(e)),8&n)return e;if("object"==typeof e&&e){if(4&n&&e.__esModule)return e;if(16&n&&"function"==typeof e.then)return e}var r=Object.create(null);s.r(r);var c={};t=t||[null,o({}),o([]),o(o)];for(var a=2&n&&e;"object"==typeof a&&!~t.indexOf(a);a=o(a))Object.getOwnPropertyNames(a).forEach((function(t){c[t]=function(){return e[t]}}));return c.default=function(){return e},s.d(r,c),r},s.d=function(e,t){for(var o in t)s.o(t,o)&&!s.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},s.f={},s.e=function(e){return Promise.all(Object.keys(s.f).reduce((function(t,o){return s.f[o](e,t),t}),[]))},s.u=function(e){return({71:"component---src-pages-portfolio-jsx",81:"component---src-pages-blog-blog-post-jsx",96:"component---src-pages-about-jsx",124:"component---src-pages-portfolio-poolex-ai-jsx",125:"component---src-pages-services-forks-jsx",162:"component---src-pages-terms-jsx",223:"commons",237:"bc4561c4491263f162ffc1bb8e4b7c67dbc37bbc",262:"component---src-pages-portfolio-world-millionaire-challenge-jsx",279:"component---src-pages-index-jsx",285:"300e51b05a0b4b20aae48962394b29fdd9ce5498",311:"component---src-pages-projects-jsx",334:"c1a8d53919aac013110a556e7c1df2a0bde7a21b",342:"component---src-pages-cv-jsx",398:"component---src-pages-portfolio-uls-token-jsx",405:"component---src-pages-products-jsx",415:"component---src-pages-404-jsx",493:"component---src-pages-blog-jsx",594:"component---src-pages-services-telegram-bots-jsx",624:"component---src-pages-curriculum-vitae-jsx",627:"component---src-pages-portfolio-roborovski-nft-jsx",653:"component---src-pages-portfolio-fibonacci-assistant-telegram-bot-jsx",681:"component---src-pages-services-jsx",878:"component---src-pages-portfolio-grabcoinclub-nft-jsx",896:"component---src-pages-products-notcoin-database-jsx",955:"component---src-pages-privacy-jsx"}[e]||e)+"-"+{71:"b41f52f683896ab46d88",81:"872d5fd392edfc490c94",96:"2422223ec1ece726fd35",108:"c72331f2ffbe8f721e34",124:"161dd7d23320749b17f5",125:"071a6b3ca56a21d51cd6",162:"41a2a507463ee6263e44",223:"53cfea43dc27171f53ac",237:"85ae2b15b1c1cfa8f44b",262:"4ca7085d59ae54958b53",279:"c574676565ac4f956b75",285:"fb243d0ea76e1eeb5985",311:"d341f19cf9f37dab020a",334:"984ef2615b020cc6aa5c",342:"83a04a406da6807f0449",398:"9ef10f7f71133f8742da",405:"d84839a11953f029e6fa",415:"8f338da35557cc3dd150",452:"17d7bbbbf40e3d1b1b44",493:"05e3c84cf6be8f12af49",594:"81caf17fb32b15d09efb",624:"e242e7a981f4c5c9cbca",627:"d870e014c24b2f84bdbe",653:"96a9f3a372639ccb9fdc",681:"1218b41e8fda3e49c2d0",878:"a83f521c44c0a5fa8968",896:"55d91539303f8c546ffd",955:"007eb7fbded158316edf"}[e]+".js"},s.miniCssF=function(e){return"styles.540ea79c1f11016ba8e3.css"},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n={},r="ivannikov.pro-website:",s.l=function(e,t,o,c){if(n[e])n[e].push(t);else{var a,f;if(void 0!==o)for(var i=document.getElementsByTagName("script"),u=0;u 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"ivannikov.pro-website:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + ({\"71\":\"component---src-pages-portfolio-jsx\",\"81\":\"component---src-pages-blog-blog-post-jsx\",\"96\":\"component---src-pages-about-jsx\",\"124\":\"component---src-pages-portfolio-poolex-ai-jsx\",\"125\":\"component---src-pages-services-forks-jsx\",\"162\":\"component---src-pages-terms-jsx\",\"223\":\"commons\",\"237\":\"bc4561c4491263f162ffc1bb8e4b7c67dbc37bbc\",\"262\":\"component---src-pages-portfolio-world-millionaire-challenge-jsx\",\"279\":\"component---src-pages-index-jsx\",\"285\":\"300e51b05a0b4b20aae48962394b29fdd9ce5498\",\"311\":\"component---src-pages-projects-jsx\",\"334\":\"c1a8d53919aac013110a556e7c1df2a0bde7a21b\",\"342\":\"component---src-pages-cv-jsx\",\"398\":\"component---src-pages-portfolio-uls-token-jsx\",\"405\":\"component---src-pages-products-jsx\",\"415\":\"component---src-pages-404-jsx\",\"493\":\"component---src-pages-blog-jsx\",\"594\":\"component---src-pages-services-telegram-bots-jsx\",\"624\":\"component---src-pages-curriculum-vitae-jsx\",\"627\":\"component---src-pages-portfolio-roborovski-nft-jsx\",\"653\":\"component---src-pages-portfolio-fibonacci-assistant-telegram-bot-jsx\",\"681\":\"component---src-pages-services-jsx\",\"878\":\"component---src-pages-portfolio-grabcoinclub-nft-jsx\",\"896\":\"component---src-pages-products-notcoin-database-jsx\",\"955\":\"component---src-pages-privacy-jsx\"}[chunkId] || chunkId) + \"-\" + {\"71\":\"b41f52f683896ab46d88\",\"81\":\"872d5fd392edfc490c94\",\"96\":\"2422223ec1ece726fd35\",\"108\":\"c72331f2ffbe8f721e34\",\"124\":\"161dd7d23320749b17f5\",\"125\":\"071a6b3ca56a21d51cd6\",\"162\":\"41a2a507463ee6263e44\",\"223\":\"53cfea43dc27171f53ac\",\"237\":\"85ae2b15b1c1cfa8f44b\",\"262\":\"4ca7085d59ae54958b53\",\"279\":\"c574676565ac4f956b75\",\"285\":\"fb243d0ea76e1eeb5985\",\"311\":\"d341f19cf9f37dab020a\",\"334\":\"984ef2615b020cc6aa5c\",\"342\":\"83a04a406da6807f0449\",\"398\":\"9ef10f7f71133f8742da\",\"405\":\"d84839a11953f029e6fa\",\"415\":\"8f338da35557cc3dd150\",\"452\":\"17d7bbbbf40e3d1b1b44\",\"493\":\"05e3c84cf6be8f12af49\",\"594\":\"81caf17fb32b15d09efb\",\"624\":\"e242e7a981f4c5c9cbca\",\"627\":\"d870e014c24b2f84bdbe\",\"653\":\"96a9f3a372639ccb9fdc\",\"681\":\"1218b41e8fda3e49c2d0\",\"878\":\"a83f521c44c0a5fa8968\",\"896\":\"55d91539303f8c546ffd\",\"955\":\"007eb7fbded158316edf\"}[chunkId] + \".js\";\n};","// This function allow to reference all chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + \"styles\" + \".\" + \"540ea79c1f11016ba8e3\" + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t692: 0,\n\t869: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(!/^(692|869)$/.test(chunkId)) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkivannikov_pro_website\"] = self[\"webpackChunkivannikov_pro_website\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","call","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","getPrototypeOf","obj","__proto__","t","value","mode","this","then","ns","create","def","current","indexOf","getOwnPropertyNames","forEach","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","miniCssF","g","globalThis","Function","window","prop","prototype","hasOwnProperty","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","p","installedChunks","installedChunkData","test","promise","resolve","reject","error","Error","errorType","realSrc","message","name","request","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","id","chunkLoadingGlobal","self"],"sourceRoot":""} \ No newline at end of file diff --git a/webpack.stats.json b/webpack.stats.json index 80eea4d..dbda0dd 100644 --- a/webpack.stats.json +++ b/webpack.stats.json @@ -1 +1 @@ -{"name":"build-javascript","namedChunkGroups":{"app":{"name":"app","assets":[{"name":"webpack-runtime-71d88bbdd2acc631a31a.js","size":5732},{"name":"styles.39b9c0f790528e4559a0.css","size":130532},{"name":"framework-ed6e0f81c02ddafbd885.js","size":141442},{"name":"app-4e1d8fdb385a026c30df.js","size":353906}],"filteredAssets":0,"assetsSize":631612,"filteredAuxiliaryAssets":8,"auxiliaryAssetsSize":2586464},"component---src-pages-404-jsx":{"name":"component---src-pages-404-jsx","assets":[{"name":"styles.39b9c0f790528e4559a0.css","size":130532},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-404-jsx-8f338da35557cc3dd150.js","size":985}],"filteredAssets":0,"assetsSize":224158,"filteredAuxiliaryAssets":8,"auxiliaryAssetsSize":1126073},"component---src-pages-about-jsx":{"name":"component---src-pages-about-jsx","assets":[{"name":"styles.39b9c0f790528e4559a0.css","size":130532},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"48961b63b6895ca1a3cfd06c6a33e8758536e77c-2f81b2f96a88463aa92d.js","size":10578},{"name":"bc4561c4491263f162ffc1bb8e4b7c67dbc37bbc-423b7db6e7d47ce2b840.js","size":43996},{"name":"component---src-pages-about-jsx-2422223ec1ece726fd35.js","size":2181}],"filteredAssets":0,"assetsSize":279928,"filteredAuxiliaryAssets":12,"auxiliaryAssetsSize":1677291},"component---src-pages-blog-blog-post-jsx":{"name":"component---src-pages-blog-blog-post-jsx","assets":[{"name":"styles.39b9c0f790528e4559a0.css","size":130532},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-blog-blog-post-jsx-336e3b10d76acbdfc606.js","size":3267}],"filteredAssets":0,"assetsSize":226440,"filteredAuxiliaryAssets":11,"auxiliaryAssetsSize":1984329},"component---src-pages-blog-jsx":{"name":"component---src-pages-blog-jsx","assets":[{"name":"styles.39b9c0f790528e4559a0.css","size":130532},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-blog-jsx-05e3c84cf6be8f12af49.js","size":3400}],"filteredAssets":0,"assetsSize":226573,"filteredAuxiliaryAssets":9,"auxiliaryAssetsSize":1170474},"component---src-pages-curriculum-vitae-jsx":{"name":"component---src-pages-curriculum-vitae-jsx","assets":[{"name":"styles.39b9c0f790528e4559a0.css","size":130532},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"48961b63b6895ca1a3cfd06c6a33e8758536e77c-2f81b2f96a88463aa92d.js","size":10578},{"name":"bc4561c4491263f162ffc1bb8e4b7c67dbc37bbc-423b7db6e7d47ce2b840.js","size":43996},{"name":"component---src-pages-curriculum-vitae-jsx-e242e7a981f4c5c9cbca.js","size":682}],"filteredAssets":0,"assetsSize":278429,"filteredAuxiliaryAssets":10,"auxiliaryAssetsSize":1287627},"component---src-pages-cv-jsx":{"name":"component---src-pages-cv-jsx","assets":[{"name":"styles.39b9c0f790528e4559a0.css","size":130532},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"48961b63b6895ca1a3cfd06c6a33e8758536e77c-2f81b2f96a88463aa92d.js","size":10578},{"name":"bc4561c4491263f162ffc1bb8e4b7c67dbc37bbc-423b7db6e7d47ce2b840.js","size":43996},{"name":"component---src-pages-cv-jsx-83a04a406da6807f0449.js","size":735}],"filteredAssets":0,"assetsSize":278482,"filteredAuxiliaryAssets":10,"auxiliaryAssetsSize":1287812},"component---src-pages-index-jsx":{"name":"component---src-pages-index-jsx","assets":[{"name":"styles.39b9c0f790528e4559a0.css","size":130532},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"48961b63b6895ca1a3cfd06c6a33e8758536e77c-2f81b2f96a88463aa92d.js","size":10578},{"name":"300e51b05a0b4b20aae48962394b29fdd9ce5498-8528517ba86c581334ec.js","size":20898},{"name":"component---src-pages-index-jsx-f25f74efa582a9e64cfb.js","size":3098}],"filteredAssets":0,"assetsSize":257747,"filteredAuxiliaryAssets":21,"auxiliaryAssetsSize":5413373},"component---src-pages-portfolio-fibonacci-assistant-telegram-bot-jsx":{"name":"component---src-pages-portfolio-fibonacci-assistant-telegram-bot-jsx","assets":[{"name":"styles.39b9c0f790528e4559a0.css","size":130532},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-portfolio-fibonacci-assistant-telegram-bot-jsx-96a9f3a372639ccb9fdc.js","size":1732}],"filteredAssets":0,"assetsSize":224905,"filteredAuxiliaryAssets":9,"auxiliaryAssetsSize":1165828},"component---src-pages-portfolio-grabcoinclub-nft-jsx":{"name":"component---src-pages-portfolio-grabcoinclub-nft-jsx","assets":[{"name":"styles.39b9c0f790528e4559a0.css","size":130532},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-portfolio-grabcoinclub-nft-jsx-a83f521c44c0a5fa8968.js","size":1671}],"filteredAssets":0,"assetsSize":224844,"filteredAuxiliaryAssets":9,"auxiliaryAssetsSize":1165751},"component---src-pages-portfolio-jsx":{"name":"component---src-pages-portfolio-jsx","assets":[{"name":"styles.39b9c0f790528e4559a0.css","size":130532},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"48961b63b6895ca1a3cfd06c6a33e8758536e77c-2f81b2f96a88463aa92d.js","size":10578},{"name":"300e51b05a0b4b20aae48962394b29fdd9ce5498-8528517ba86c581334ec.js","size":20898},{"name":"component---src-pages-portfolio-jsx-de70e7a75fce95149974.js","size":3757}],"filteredAssets":0,"assetsSize":258406,"filteredAuxiliaryAssets":11,"auxiliaryAssetsSize":1259151},"component---src-pages-portfolio-poolex-ai-jsx":{"name":"component---src-pages-portfolio-poolex-ai-jsx","assets":[{"name":"styles.39b9c0f790528e4559a0.css","size":130532},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-portfolio-poolex-ai-jsx-161dd7d23320749b17f5.js","size":1640}],"filteredAssets":0,"assetsSize":224813,"filteredAuxiliaryAssets":9,"auxiliaryAssetsSize":1165709},"component---src-pages-portfolio-roborovski-nft-jsx":{"name":"component---src-pages-portfolio-roborovski-nft-jsx","assets":[{"name":"styles.39b9c0f790528e4559a0.css","size":130532},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-portfolio-roborovski-nft-jsx-d870e014c24b2f84bdbe.js","size":1660}],"filteredAssets":0,"assetsSize":224833,"filteredAuxiliaryAssets":9,"auxiliaryAssetsSize":1165738},"component---src-pages-portfolio-uls-token-jsx":{"name":"component---src-pages-portfolio-uls-token-jsx","assets":[{"name":"styles.39b9c0f790528e4559a0.css","size":130532},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-portfolio-uls-token-jsx-9ef10f7f71133f8742da.js","size":1640}],"filteredAssets":0,"assetsSize":224813,"filteredAuxiliaryAssets":9,"auxiliaryAssetsSize":1165709},"component---src-pages-portfolio-world-millionaire-challenge-jsx":{"name":"component---src-pages-portfolio-world-millionaire-challenge-jsx","assets":[{"name":"styles.39b9c0f790528e4559a0.css","size":130532},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-portfolio-world-millionaire-challenge-jsx-4ca7085d59ae54958b53.js","size":1712}],"filteredAssets":0,"assetsSize":224885,"filteredAuxiliaryAssets":9,"auxiliaryAssetsSize":1165803},"component---src-pages-privacy-jsx":{"name":"component---src-pages-privacy-jsx","assets":[{"name":"styles.39b9c0f790528e4559a0.css","size":130532},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-privacy-jsx-007eb7fbded158316edf.js","size":3549}],"filteredAssets":0,"assetsSize":226722,"filteredAuxiliaryAssets":8,"auxiliaryAssetsSize":1132542},"component---src-pages-products-hotcoin-database-jsx":{"name":"component---src-pages-products-hotcoin-database-jsx","assets":[{"name":"styles.39b9c0f790528e4559a0.css","size":130532},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-products-hotcoin-database-jsx-8f330ba0e34ed5af0ac0.js","size":1893}],"filteredAssets":0,"assetsSize":225066,"filteredAuxiliaryAssets":9,"auxiliaryAssetsSize":1168194},"component---src-pages-products-jsx":{"name":"component---src-pages-products-jsx","assets":[{"name":"styles.39b9c0f790528e4559a0.css","size":130532},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-products-jsx-d84839a11953f029e6fa.js","size":1834}],"filteredAssets":0,"assetsSize":225007,"filteredAuxiliaryAssets":9,"auxiliaryAssetsSize":1166503},"component---src-pages-products-notcoin-database-jsx":{"name":"component---src-pages-products-notcoin-database-jsx","assets":[{"name":"styles.39b9c0f790528e4559a0.css","size":130532},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-products-notcoin-database-jsx-6942f32a38f26a8abbe8.js","size":3708}],"filteredAssets":0,"assetsSize":226881,"filteredAuxiliaryAssets":9,"auxiliaryAssetsSize":1169227},"component---src-pages-projects-jsx":{"name":"component---src-pages-projects-jsx","assets":[{"name":"styles.39b9c0f790528e4559a0.css","size":130532},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-projects-jsx-d341f19cf9f37dab020a.js","size":1834}],"filteredAssets":0,"assetsSize":225007,"filteredAuxiliaryAssets":9,"auxiliaryAssetsSize":1166501},"component---src-pages-services-forks-jsx":{"name":"component---src-pages-services-forks-jsx","assets":[{"name":"styles.39b9c0f790528e4559a0.css","size":130532},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-services-forks-jsx-071a6b3ca56a21d51cd6.js","size":1851}],"filteredAssets":0,"assetsSize":225024,"filteredAuxiliaryAssets":9,"auxiliaryAssetsSize":1166560},"component---src-pages-services-jsx":{"name":"component---src-pages-services-jsx","assets":[{"name":"styles.39b9c0f790528e4559a0.css","size":130532},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-services-jsx-1218b41e8fda3e49c2d0.js","size":1834}],"filteredAssets":0,"assetsSize":225007,"filteredAuxiliaryAssets":9,"auxiliaryAssetsSize":1166501},"component---src-pages-services-telegram-bots-jsx":{"name":"component---src-pages-services-telegram-bots-jsx","assets":[{"name":"styles.39b9c0f790528e4559a0.css","size":130532},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-services-telegram-bots-jsx-81caf17fb32b15d09efb.js","size":1883}],"filteredAssets":0,"assetsSize":225056,"filteredAuxiliaryAssets":9,"auxiliaryAssetsSize":1166604},"component---src-pages-terms-jsx":{"name":"component---src-pages-terms-jsx","assets":[{"name":"styles.39b9c0f790528e4559a0.css","size":130532},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-terms-jsx-41a2a507463ee6263e44.js","size":2621}],"filteredAssets":0,"assetsSize":225794,"filteredAuxiliaryAssets":8,"auxiliaryAssetsSize":1131218}},"assetsByChunkName":{"app":["webpack-runtime-71d88bbdd2acc631a31a.js","styles.39b9c0f790528e4559a0.css","framework-ed6e0f81c02ddafbd885.js","app-4e1d8fdb385a026c30df.js"],"component---src-pages-404-jsx":["styles.39b9c0f790528e4559a0.css","commons-53cfea43dc27171f53ac.js","component---src-pages-404-jsx-8f338da35557cc3dd150.js"],"component---src-pages-about-jsx":["styles.39b9c0f790528e4559a0.css","commons-53cfea43dc27171f53ac.js","48961b63b6895ca1a3cfd06c6a33e8758536e77c-2f81b2f96a88463aa92d.js","bc4561c4491263f162ffc1bb8e4b7c67dbc37bbc-423b7db6e7d47ce2b840.js","component---src-pages-about-jsx-2422223ec1ece726fd35.js"],"component---src-pages-blog-blog-post-jsx":["styles.39b9c0f790528e4559a0.css","commons-53cfea43dc27171f53ac.js","component---src-pages-blog-blog-post-jsx-336e3b10d76acbdfc606.js"],"component---src-pages-blog-jsx":["styles.39b9c0f790528e4559a0.css","commons-53cfea43dc27171f53ac.js","component---src-pages-blog-jsx-05e3c84cf6be8f12af49.js"],"component---src-pages-curriculum-vitae-jsx":["styles.39b9c0f790528e4559a0.css","commons-53cfea43dc27171f53ac.js","48961b63b6895ca1a3cfd06c6a33e8758536e77c-2f81b2f96a88463aa92d.js","bc4561c4491263f162ffc1bb8e4b7c67dbc37bbc-423b7db6e7d47ce2b840.js","component---src-pages-curriculum-vitae-jsx-e242e7a981f4c5c9cbca.js"],"component---src-pages-cv-jsx":["styles.39b9c0f790528e4559a0.css","commons-53cfea43dc27171f53ac.js","48961b63b6895ca1a3cfd06c6a33e8758536e77c-2f81b2f96a88463aa92d.js","bc4561c4491263f162ffc1bb8e4b7c67dbc37bbc-423b7db6e7d47ce2b840.js","component---src-pages-cv-jsx-83a04a406da6807f0449.js"],"component---src-pages-index-jsx":["styles.39b9c0f790528e4559a0.css","commons-53cfea43dc27171f53ac.js","48961b63b6895ca1a3cfd06c6a33e8758536e77c-2f81b2f96a88463aa92d.js","300e51b05a0b4b20aae48962394b29fdd9ce5498-8528517ba86c581334ec.js","component---src-pages-index-jsx-f25f74efa582a9e64cfb.js"],"component---src-pages-portfolio-fibonacci-assistant-telegram-bot-jsx":["styles.39b9c0f790528e4559a0.css","commons-53cfea43dc27171f53ac.js","component---src-pages-portfolio-fibonacci-assistant-telegram-bot-jsx-96a9f3a372639ccb9fdc.js"],"component---src-pages-portfolio-grabcoinclub-nft-jsx":["styles.39b9c0f790528e4559a0.css","commons-53cfea43dc27171f53ac.js","component---src-pages-portfolio-grabcoinclub-nft-jsx-a83f521c44c0a5fa8968.js"],"component---src-pages-portfolio-jsx":["styles.39b9c0f790528e4559a0.css","commons-53cfea43dc27171f53ac.js","48961b63b6895ca1a3cfd06c6a33e8758536e77c-2f81b2f96a88463aa92d.js","300e51b05a0b4b20aae48962394b29fdd9ce5498-8528517ba86c581334ec.js","component---src-pages-portfolio-jsx-de70e7a75fce95149974.js"],"component---src-pages-portfolio-poolex-ai-jsx":["styles.39b9c0f790528e4559a0.css","commons-53cfea43dc27171f53ac.js","component---src-pages-portfolio-poolex-ai-jsx-161dd7d23320749b17f5.js"],"component---src-pages-portfolio-roborovski-nft-jsx":["styles.39b9c0f790528e4559a0.css","commons-53cfea43dc27171f53ac.js","component---src-pages-portfolio-roborovski-nft-jsx-d870e014c24b2f84bdbe.js"],"component---src-pages-portfolio-uls-token-jsx":["styles.39b9c0f790528e4559a0.css","commons-53cfea43dc27171f53ac.js","component---src-pages-portfolio-uls-token-jsx-9ef10f7f71133f8742da.js"],"component---src-pages-portfolio-world-millionaire-challenge-jsx":["styles.39b9c0f790528e4559a0.css","commons-53cfea43dc27171f53ac.js","component---src-pages-portfolio-world-millionaire-challenge-jsx-4ca7085d59ae54958b53.js"],"component---src-pages-privacy-jsx":["styles.39b9c0f790528e4559a0.css","commons-53cfea43dc27171f53ac.js","component---src-pages-privacy-jsx-007eb7fbded158316edf.js"],"component---src-pages-products-hotcoin-database-jsx":["styles.39b9c0f790528e4559a0.css","commons-53cfea43dc27171f53ac.js","component---src-pages-products-hotcoin-database-jsx-8f330ba0e34ed5af0ac0.js"],"component---src-pages-products-jsx":["styles.39b9c0f790528e4559a0.css","commons-53cfea43dc27171f53ac.js","component---src-pages-products-jsx-d84839a11953f029e6fa.js"],"component---src-pages-products-notcoin-database-jsx":["styles.39b9c0f790528e4559a0.css","commons-53cfea43dc27171f53ac.js","component---src-pages-products-notcoin-database-jsx-6942f32a38f26a8abbe8.js"],"component---src-pages-projects-jsx":["styles.39b9c0f790528e4559a0.css","commons-53cfea43dc27171f53ac.js","component---src-pages-projects-jsx-d341f19cf9f37dab020a.js"],"component---src-pages-services-forks-jsx":["styles.39b9c0f790528e4559a0.css","commons-53cfea43dc27171f53ac.js","component---src-pages-services-forks-jsx-071a6b3ca56a21d51cd6.js"],"component---src-pages-services-jsx":["styles.39b9c0f790528e4559a0.css","commons-53cfea43dc27171f53ac.js","component---src-pages-services-jsx-1218b41e8fda3e49c2d0.js"],"component---src-pages-services-telegram-bots-jsx":["styles.39b9c0f790528e4559a0.css","commons-53cfea43dc27171f53ac.js","component---src-pages-services-telegram-bots-jsx-81caf17fb32b15d09efb.js"],"component---src-pages-terms-jsx":["styles.39b9c0f790528e4559a0.css","commons-53cfea43dc27171f53ac.js","component---src-pages-terms-jsx-41a2a507463ee6263e44.js"]},"childAssetsByChunkName":{}} \ No newline at end of file +{"name":"build-javascript","namedChunkGroups":{"app":{"name":"app","assets":[{"name":"webpack-runtime-874880dbf195c979b1a8.js","size":5649},{"name":"styles.540ea79c1f11016ba8e3.css","size":131025},{"name":"framework-ed6e0f81c02ddafbd885.js","size":141442},{"name":"app-edcd9978be5b7bd7cdfb.js","size":353918}],"filteredAssets":0,"assetsSize":632034,"filteredAuxiliaryAssets":8,"auxiliaryAssetsSize":2586055},"component---src-pages-404-jsx":{"name":"component---src-pages-404-jsx","assets":[{"name":"styles.540ea79c1f11016ba8e3.css","size":131025},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-404-jsx-8f338da35557cc3dd150.js","size":985}],"filteredAssets":0,"assetsSize":224651,"filteredAuxiliaryAssets":8,"auxiliaryAssetsSize":1126073},"component---src-pages-about-jsx":{"name":"component---src-pages-about-jsx","assets":[{"name":"styles.540ea79c1f11016ba8e3.css","size":131025},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"c1a8d53919aac013110a556e7c1df2a0bde7a21b-984ef2615b020cc6aa5c.js","size":10338},{"name":"bc4561c4491263f162ffc1bb8e4b7c67dbc37bbc-85ae2b15b1c1cfa8f44b.js","size":44249},{"name":"component---src-pages-about-jsx-2422223ec1ece726fd35.js","size":2181}],"filteredAssets":0,"assetsSize":280434,"filteredAuxiliaryAssets":12,"auxiliaryAssetsSize":1677206},"component---src-pages-blog-blog-post-jsx":{"name":"component---src-pages-blog-blog-post-jsx","assets":[{"name":"styles.540ea79c1f11016ba8e3.css","size":131025},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"c1a8d53919aac013110a556e7c1df2a0bde7a21b-984ef2615b020cc6aa5c.js","size":10338},{"name":"component---src-pages-blog-blog-post-jsx-872d5fd392edfc490c94.js","size":7353}],"filteredAssets":0,"assetsSize":241357,"filteredAuxiliaryAssets":9,"auxiliaryAssetsSize":1201375},"component---src-pages-blog-jsx":{"name":"component---src-pages-blog-jsx","assets":[{"name":"styles.540ea79c1f11016ba8e3.css","size":131025},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-blog-jsx-05e3c84cf6be8f12af49.js","size":3400}],"filteredAssets":0,"assetsSize":227066,"filteredAuxiliaryAssets":9,"auxiliaryAssetsSize":1170474},"component---src-pages-curriculum-vitae-jsx":{"name":"component---src-pages-curriculum-vitae-jsx","assets":[{"name":"styles.540ea79c1f11016ba8e3.css","size":131025},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"c1a8d53919aac013110a556e7c1df2a0bde7a21b-984ef2615b020cc6aa5c.js","size":10338},{"name":"bc4561c4491263f162ffc1bb8e4b7c67dbc37bbc-85ae2b15b1c1cfa8f44b.js","size":44249},{"name":"component---src-pages-curriculum-vitae-jsx-e242e7a981f4c5c9cbca.js","size":682}],"filteredAssets":0,"assetsSize":278935,"filteredAuxiliaryAssets":10,"auxiliaryAssetsSize":1287542},"component---src-pages-cv-jsx":{"name":"component---src-pages-cv-jsx","assets":[{"name":"styles.540ea79c1f11016ba8e3.css","size":131025},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"c1a8d53919aac013110a556e7c1df2a0bde7a21b-984ef2615b020cc6aa5c.js","size":10338},{"name":"bc4561c4491263f162ffc1bb8e4b7c67dbc37bbc-85ae2b15b1c1cfa8f44b.js","size":44249},{"name":"component---src-pages-cv-jsx-83a04a406da6807f0449.js","size":735}],"filteredAssets":0,"assetsSize":278988,"filteredAuxiliaryAssets":10,"auxiliaryAssetsSize":1287727},"component---src-pages-index-jsx":{"name":"component---src-pages-index-jsx","assets":[{"name":"styles.540ea79c1f11016ba8e3.css","size":131025},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"c1a8d53919aac013110a556e7c1df2a0bde7a21b-984ef2615b020cc6aa5c.js","size":10338},{"name":"300e51b05a0b4b20aae48962394b29fdd9ce5498-fb243d0ea76e1eeb5985.js","size":21418},{"name":"component---src-pages-index-jsx-c574676565ac4f956b75.js","size":3100}],"filteredAssets":0,"assetsSize":258522,"filteredAuxiliaryAssets":21,"auxiliaryAssetsSize":5413275},"component---src-pages-portfolio-fibonacci-assistant-telegram-bot-jsx":{"name":"component---src-pages-portfolio-fibonacci-assistant-telegram-bot-jsx","assets":[{"name":"styles.540ea79c1f11016ba8e3.css","size":131025},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-portfolio-fibonacci-assistant-telegram-bot-jsx-96a9f3a372639ccb9fdc.js","size":1732}],"filteredAssets":0,"assetsSize":225398,"filteredAuxiliaryAssets":9,"auxiliaryAssetsSize":1165828},"component---src-pages-portfolio-grabcoinclub-nft-jsx":{"name":"component---src-pages-portfolio-grabcoinclub-nft-jsx","assets":[{"name":"styles.540ea79c1f11016ba8e3.css","size":131025},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-portfolio-grabcoinclub-nft-jsx-a83f521c44c0a5fa8968.js","size":1671}],"filteredAssets":0,"assetsSize":225337,"filteredAuxiliaryAssets":9,"auxiliaryAssetsSize":1165751},"component---src-pages-portfolio-jsx":{"name":"component---src-pages-portfolio-jsx","assets":[{"name":"styles.540ea79c1f11016ba8e3.css","size":131025},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"c1a8d53919aac013110a556e7c1df2a0bde7a21b-984ef2615b020cc6aa5c.js","size":10338},{"name":"300e51b05a0b4b20aae48962394b29fdd9ce5498-fb243d0ea76e1eeb5985.js","size":21418},{"name":"component---src-pages-portfolio-jsx-b41f52f683896ab46d88.js","size":3759}],"filteredAssets":0,"assetsSize":259181,"filteredAuxiliaryAssets":11,"auxiliaryAssetsSize":1259053},"component---src-pages-portfolio-poolex-ai-jsx":{"name":"component---src-pages-portfolio-poolex-ai-jsx","assets":[{"name":"styles.540ea79c1f11016ba8e3.css","size":131025},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-portfolio-poolex-ai-jsx-161dd7d23320749b17f5.js","size":1640}],"filteredAssets":0,"assetsSize":225306,"filteredAuxiliaryAssets":9,"auxiliaryAssetsSize":1165709},"component---src-pages-portfolio-roborovski-nft-jsx":{"name":"component---src-pages-portfolio-roborovski-nft-jsx","assets":[{"name":"styles.540ea79c1f11016ba8e3.css","size":131025},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-portfolio-roborovski-nft-jsx-d870e014c24b2f84bdbe.js","size":1660}],"filteredAssets":0,"assetsSize":225326,"filteredAuxiliaryAssets":9,"auxiliaryAssetsSize":1165738},"component---src-pages-portfolio-uls-token-jsx":{"name":"component---src-pages-portfolio-uls-token-jsx","assets":[{"name":"styles.540ea79c1f11016ba8e3.css","size":131025},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-portfolio-uls-token-jsx-9ef10f7f71133f8742da.js","size":1640}],"filteredAssets":0,"assetsSize":225306,"filteredAuxiliaryAssets":9,"auxiliaryAssetsSize":1165709},"component---src-pages-portfolio-world-millionaire-challenge-jsx":{"name":"component---src-pages-portfolio-world-millionaire-challenge-jsx","assets":[{"name":"styles.540ea79c1f11016ba8e3.css","size":131025},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-portfolio-world-millionaire-challenge-jsx-4ca7085d59ae54958b53.js","size":1712}],"filteredAssets":0,"assetsSize":225378,"filteredAuxiliaryAssets":9,"auxiliaryAssetsSize":1165803},"component---src-pages-privacy-jsx":{"name":"component---src-pages-privacy-jsx","assets":[{"name":"styles.540ea79c1f11016ba8e3.css","size":131025},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-privacy-jsx-007eb7fbded158316edf.js","size":3549}],"filteredAssets":0,"assetsSize":227215,"filteredAuxiliaryAssets":8,"auxiliaryAssetsSize":1132542},"component---src-pages-products-jsx":{"name":"component---src-pages-products-jsx","assets":[{"name":"styles.540ea79c1f11016ba8e3.css","size":131025},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-products-jsx-d84839a11953f029e6fa.js","size":1834}],"filteredAssets":0,"assetsSize":225500,"filteredAuxiliaryAssets":9,"auxiliaryAssetsSize":1166503},"component---src-pages-products-notcoin-database-jsx":{"name":"component---src-pages-products-notcoin-database-jsx","assets":[{"name":"styles.540ea79c1f11016ba8e3.css","size":131025},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"c1a8d53919aac013110a556e7c1df2a0bde7a21b-984ef2615b020cc6aa5c.js","size":10338},{"name":"component---src-pages-products-notcoin-database-jsx-55d91539303f8c546ffd.js","size":9596}],"filteredAssets":0,"assetsSize":243600,"filteredAuxiliaryAssets":9,"auxiliaryAssetsSize":1203100},"component---src-pages-projects-jsx":{"name":"component---src-pages-projects-jsx","assets":[{"name":"styles.540ea79c1f11016ba8e3.css","size":131025},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-projects-jsx-d341f19cf9f37dab020a.js","size":1834}],"filteredAssets":0,"assetsSize":225500,"filteredAuxiliaryAssets":9,"auxiliaryAssetsSize":1166501},"component---src-pages-services-forks-jsx":{"name":"component---src-pages-services-forks-jsx","assets":[{"name":"styles.540ea79c1f11016ba8e3.css","size":131025},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-services-forks-jsx-071a6b3ca56a21d51cd6.js","size":1851}],"filteredAssets":0,"assetsSize":225517,"filteredAuxiliaryAssets":9,"auxiliaryAssetsSize":1166560},"component---src-pages-services-jsx":{"name":"component---src-pages-services-jsx","assets":[{"name":"styles.540ea79c1f11016ba8e3.css","size":131025},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-services-jsx-1218b41e8fda3e49c2d0.js","size":1834}],"filteredAssets":0,"assetsSize":225500,"filteredAuxiliaryAssets":9,"auxiliaryAssetsSize":1166501},"component---src-pages-services-telegram-bots-jsx":{"name":"component---src-pages-services-telegram-bots-jsx","assets":[{"name":"styles.540ea79c1f11016ba8e3.css","size":131025},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-services-telegram-bots-jsx-81caf17fb32b15d09efb.js","size":1883}],"filteredAssets":0,"assetsSize":225549,"filteredAuxiliaryAssets":9,"auxiliaryAssetsSize":1166604},"component---src-pages-terms-jsx":{"name":"component---src-pages-terms-jsx","assets":[{"name":"styles.540ea79c1f11016ba8e3.css","size":131025},{"name":"commons-53cfea43dc27171f53ac.js","size":92641},{"name":"component---src-pages-terms-jsx-41a2a507463ee6263e44.js","size":2621}],"filteredAssets":0,"assetsSize":226287,"filteredAuxiliaryAssets":8,"auxiliaryAssetsSize":1131218}},"assetsByChunkName":{"app":["webpack-runtime-874880dbf195c979b1a8.js","styles.540ea79c1f11016ba8e3.css","framework-ed6e0f81c02ddafbd885.js","app-edcd9978be5b7bd7cdfb.js"],"component---src-pages-404-jsx":["styles.540ea79c1f11016ba8e3.css","commons-53cfea43dc27171f53ac.js","component---src-pages-404-jsx-8f338da35557cc3dd150.js"],"component---src-pages-about-jsx":["styles.540ea79c1f11016ba8e3.css","commons-53cfea43dc27171f53ac.js","c1a8d53919aac013110a556e7c1df2a0bde7a21b-984ef2615b020cc6aa5c.js","bc4561c4491263f162ffc1bb8e4b7c67dbc37bbc-85ae2b15b1c1cfa8f44b.js","component---src-pages-about-jsx-2422223ec1ece726fd35.js"],"component---src-pages-blog-blog-post-jsx":["styles.540ea79c1f11016ba8e3.css","commons-53cfea43dc27171f53ac.js","c1a8d53919aac013110a556e7c1df2a0bde7a21b-984ef2615b020cc6aa5c.js","component---src-pages-blog-blog-post-jsx-872d5fd392edfc490c94.js"],"component---src-pages-blog-jsx":["styles.540ea79c1f11016ba8e3.css","commons-53cfea43dc27171f53ac.js","component---src-pages-blog-jsx-05e3c84cf6be8f12af49.js"],"component---src-pages-curriculum-vitae-jsx":["styles.540ea79c1f11016ba8e3.css","commons-53cfea43dc27171f53ac.js","c1a8d53919aac013110a556e7c1df2a0bde7a21b-984ef2615b020cc6aa5c.js","bc4561c4491263f162ffc1bb8e4b7c67dbc37bbc-85ae2b15b1c1cfa8f44b.js","component---src-pages-curriculum-vitae-jsx-e242e7a981f4c5c9cbca.js"],"component---src-pages-cv-jsx":["styles.540ea79c1f11016ba8e3.css","commons-53cfea43dc27171f53ac.js","c1a8d53919aac013110a556e7c1df2a0bde7a21b-984ef2615b020cc6aa5c.js","bc4561c4491263f162ffc1bb8e4b7c67dbc37bbc-85ae2b15b1c1cfa8f44b.js","component---src-pages-cv-jsx-83a04a406da6807f0449.js"],"component---src-pages-index-jsx":["styles.540ea79c1f11016ba8e3.css","commons-53cfea43dc27171f53ac.js","c1a8d53919aac013110a556e7c1df2a0bde7a21b-984ef2615b020cc6aa5c.js","300e51b05a0b4b20aae48962394b29fdd9ce5498-fb243d0ea76e1eeb5985.js","component---src-pages-index-jsx-c574676565ac4f956b75.js"],"component---src-pages-portfolio-fibonacci-assistant-telegram-bot-jsx":["styles.540ea79c1f11016ba8e3.css","commons-53cfea43dc27171f53ac.js","component---src-pages-portfolio-fibonacci-assistant-telegram-bot-jsx-96a9f3a372639ccb9fdc.js"],"component---src-pages-portfolio-grabcoinclub-nft-jsx":["styles.540ea79c1f11016ba8e3.css","commons-53cfea43dc27171f53ac.js","component---src-pages-portfolio-grabcoinclub-nft-jsx-a83f521c44c0a5fa8968.js"],"component---src-pages-portfolio-jsx":["styles.540ea79c1f11016ba8e3.css","commons-53cfea43dc27171f53ac.js","c1a8d53919aac013110a556e7c1df2a0bde7a21b-984ef2615b020cc6aa5c.js","300e51b05a0b4b20aae48962394b29fdd9ce5498-fb243d0ea76e1eeb5985.js","component---src-pages-portfolio-jsx-b41f52f683896ab46d88.js"],"component---src-pages-portfolio-poolex-ai-jsx":["styles.540ea79c1f11016ba8e3.css","commons-53cfea43dc27171f53ac.js","component---src-pages-portfolio-poolex-ai-jsx-161dd7d23320749b17f5.js"],"component---src-pages-portfolio-roborovski-nft-jsx":["styles.540ea79c1f11016ba8e3.css","commons-53cfea43dc27171f53ac.js","component---src-pages-portfolio-roborovski-nft-jsx-d870e014c24b2f84bdbe.js"],"component---src-pages-portfolio-uls-token-jsx":["styles.540ea79c1f11016ba8e3.css","commons-53cfea43dc27171f53ac.js","component---src-pages-portfolio-uls-token-jsx-9ef10f7f71133f8742da.js"],"component---src-pages-portfolio-world-millionaire-challenge-jsx":["styles.540ea79c1f11016ba8e3.css","commons-53cfea43dc27171f53ac.js","component---src-pages-portfolio-world-millionaire-challenge-jsx-4ca7085d59ae54958b53.js"],"component---src-pages-privacy-jsx":["styles.540ea79c1f11016ba8e3.css","commons-53cfea43dc27171f53ac.js","component---src-pages-privacy-jsx-007eb7fbded158316edf.js"],"component---src-pages-products-jsx":["styles.540ea79c1f11016ba8e3.css","commons-53cfea43dc27171f53ac.js","component---src-pages-products-jsx-d84839a11953f029e6fa.js"],"component---src-pages-products-notcoin-database-jsx":["styles.540ea79c1f11016ba8e3.css","commons-53cfea43dc27171f53ac.js","c1a8d53919aac013110a556e7c1df2a0bde7a21b-984ef2615b020cc6aa5c.js","component---src-pages-products-notcoin-database-jsx-55d91539303f8c546ffd.js"],"component---src-pages-projects-jsx":["styles.540ea79c1f11016ba8e3.css","commons-53cfea43dc27171f53ac.js","component---src-pages-projects-jsx-d341f19cf9f37dab020a.js"],"component---src-pages-services-forks-jsx":["styles.540ea79c1f11016ba8e3.css","commons-53cfea43dc27171f53ac.js","component---src-pages-services-forks-jsx-071a6b3ca56a21d51cd6.js"],"component---src-pages-services-jsx":["styles.540ea79c1f11016ba8e3.css","commons-53cfea43dc27171f53ac.js","component---src-pages-services-jsx-1218b41e8fda3e49c2d0.js"],"component---src-pages-services-telegram-bots-jsx":["styles.540ea79c1f11016ba8e3.css","commons-53cfea43dc27171f53ac.js","component---src-pages-services-telegram-bots-jsx-81caf17fb32b15d09efb.js"],"component---src-pages-terms-jsx":["styles.540ea79c1f11016ba8e3.css","commons-53cfea43dc27171f53ac.js","component---src-pages-terms-jsx-41a2a507463ee6263e44.js"]},"childAssetsByChunkName":{}} \ No newline at end of file