diff --git a/asset-manifest.json b/asset-manifest.json index a2bb069..ce6643b 100644 --- a/asset-manifest.json +++ b/asset-manifest.json @@ -1,7 +1,7 @@ { "files": { - "main.css": "/static/css/main.68d51e4f.css", - "main.js": "/static/js/main.5492fa2e.js", + "main.css": "/static/css/main.39bded82.css", + "main.js": "/static/js/main.a9c8be36.js", "static/js/453.5615ffab.chunk.js": "/static/js/453.5615ffab.chunk.js", "static/media/hero-steamos.png": "/static/media/hero-steamos.43912610e9466fe475a0.png", "static/media/hero-windows.png": "/static/media/hero-windows.c9eb6e70d8a44d62c74b.png", @@ -20,12 +20,12 @@ "static/media/logo.svg": "/static/media/logo.87dfa5ab2f8f1880822e48aeee5a5de7.svg", "index.html": "/index.html", "static/media/chevron.svg": "/static/media/chevron.0cbc2dd4abc453982104d7bcfab3e90e.svg", - "main.68d51e4f.css.map": "/static/css/main.68d51e4f.css.map", - "main.5492fa2e.js.map": "/static/js/main.5492fa2e.js.map", + "main.39bded82.css.map": "/static/css/main.39bded82.css.map", + "main.a9c8be36.js.map": "/static/js/main.a9c8be36.js.map", "453.5615ffab.chunk.js.map": "/static/js/453.5615ffab.chunk.js.map" }, "entrypoints": [ - "static/css/main.68d51e4f.css", - "static/js/main.5492fa2e.js" + "static/css/main.39bded82.css", + "static/js/main.a9c8be36.js" ] } \ No newline at end of file diff --git a/index.html b/index.html index fd1e921..7822092 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -EmuDeck - Emulators on Steam Deck, SteamOS , Rog Ally and Windows
\ No newline at end of file +EmuDeck - Emulators on Steam Deck, SteamOS , Rog Ally and Windows
\ No newline at end of file diff --git a/static/css/main.68d51e4f.css b/static/css/main.39bded82.css similarity index 97% rename from static/css/main.68d51e4f.css rename to static/css/main.39bded82.css index e458d8e..aeec3d3 100644 --- a/static/css/main.68d51e4f.css +++ b/static/css/main.39bded82.css @@ -1,2 +1,2 @@ -button{background:none;border:0;color:inherit;cursor:pointer;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;padding:0}.form .form__addon,[class*=btn-]{-webkit-appearance:none;cursor:pointer;margin:0;text-decoration:none;vertical-align:middle;vertical-align:top}.form .form__addon::hover,[class*=btn-]::hover{text-decoration:none}.form .form__addon:focus,[class*=btn-]:focus{outline:none}.btn--center.btn--center{display:block;margin-left:auto;margin-right:auto}.btn--block{display:block;text-align:center;width:100%}@media(min-width:320px)and (max-width:767px){.btn--block--xs{display:block;padding-left:0;padding-right:0;text-align:center;width:100%}}@media(min-width:768px)and (max-width:991px){.btn--block--sm{display:block;padding-left:0;padding-right:0;text-align:center;width:100%}}@media(min-width:var(--screen-md ))and (max-width:var(--screen-md-max )){.btn--block--md{display:block;padding-left:0;padding-right:0;text-align:center;width:100%}}@media(min-width:var(--screen-lg ))and (max-width:var(--screen-lg-max )){.btn--block--lg{display:block;padding-left:0;padding-right:0;text-align:center;width:100%}}@media(min-width:var(--screen-xl )){.btn--block--xl{display:block;padding-left:0;padding-right:0;text-align:center;width:100%}}button[class*=link--]{background:none;border:none;cursor:pointer;font-size:inherit;padding:0}.btn-group{display:inline-flex}.btn-group input{display:none}.btn-group [class*=btn-]{border-radius:0;margin:0}.btn-simple{align-items:center;border-radius:var(--btn-simple-border-radius);display:inline-block;font-size:var(--btn-simple-text-size);font-weight:700;line-height:var(--btn-simple-text-size);margin-bottom:32px;margin-bottom:var(--margin-elements);padding:var(--btn-simple-padding);transition:var(--btn-simple-transition-out)}.form .btn-simple{height:56px;height:var(--input-height)}.form .btn-simple--xs{height:56px;height:var(--input-height-xs)}.form .btn-simple--sm{height:56px;height:var(--input-height-sm)}.form .btn-simple--lg{height:56px;height:var(--input-height-lg)}.btn-simple:focus,.btn-simple:hover{transition:var(--btn-simple-transition-in)}@media(min-width:320px)and (max-width:991px){.btn-simple--block+.btn--block{margin-top:var(--btn-simple-mt)}}.btn-simple--xs{font-size:var(--btn-simple-text-size-xs);padding:var(--btn-simple-padding-xs)}.btn-simple--sm{font-size:var(--btn-simple-text-size-sm);padding:var(--btn-simple-padding-sm)}.btn-simple--lg{font-size:var(--btn-simple-text-size-lg);padding:var(--btn-simple-padding-lg)}a.btn-simple,a.btn-simple--lg,a.btn-simple--sm,a.btn-simple--xs,label.btn-simple,label.btn-simple--lg,label.btn-simple--sm,label.btn-simple--xs{line-height:1}.btn-group{justify-content:center;margin-bottom:2.4rem;margin-bottom:var(--margin3)}@media(max-width:991px){.btn-group{flex-wrap:wrap}}.btn-group [class*=btn]{margin-right:var(--btn-group-separation)}@media(max-width:991px){.btn-group [class*=btn]{margin:0 0 32px;margin-bottom:var(--margin-elements);width:100%}}.btn-group [class*=btn]:first-of-type{border-bottom-left-radius:var(--btn-simple-border-radius);border-top-left-radius:var(--btn-simple-border-radius)}.btn-group [class*=btn]:last-child{border-bottom-right-radius:var(--btn-simple-border-radius);border-top-right-radius:var(--btn-simple-border-radius);margin-right:0}.btn--block+.btn--block{margin-top:var(--btn-simple-mt)}.btn--block{padding-left:0;padding-right:0}.btn-simple{--btn-simple-padding:21px 48px;--btn-simple-text-size:14px;--btn-simple-mt:10px;--btn-simple-border-radius:0px;--btn-simple-transition-in:0.2s;--btn-simple-transition-out:0.2s;--btn-simple-padding-xs:4px 5px;--btn-simple-text-size-xs:10px;--btn-simple-padding-sm:6px 10px;--btn-simple-text-size-sm:12px;--btn-simple-padding-lg:10px 18px;--btn-simple-text-size-lg:18px;--btn-group-separation:18px}.btn-simple--1{fill:#fff;background:#ac30d3;background:var(--color-highlight);color:#fff}.btn-simple--1:focus,.btn-simple--1:hover{fill:#fff;background:#444;color:#fff}.btn-simple--1.is-disabled,.btn-simple--1[disabled]{fill:#fff;background:#afafaf;background:var(--color-disabled);color:#fff}.btn-group input+label.btn-simple--1{background:#ac30d3;background:var(--color-highlight)}.btn-group input:checked+label.btn-simple--1{background:#444}.btn-simple--2{fill:#fff;background:#ec3457;background:var(--color-danger);color:#fff}.btn-simple--2:focus,.btn-simple--2:hover{fill:#fff;background:#444;color:#fff}.btn-simple--2.is-disabled,.btn-simple--2[disabled]{fill:#fff;background:#afafaf;background:var(--color-disabled);color:#fff}.btn-group input+label.btn-simple--2{background:#ec3457;background:var(--color-danger)}.btn-group input:checked+label.btn-simple--2{background:#444}.btn-simple--3{fill:#fff;background:#6ea0c6;background:var(--color-info);color:#fff}.btn-simple--3:focus,.btn-simple--3:hover{fill:#fff;background:#444;color:#fff}.btn-simple--3.is-disabled,.btn-simple--3[disabled]{fill:#fff;background:#afafaf;background:var(--color-disabled);color:#fff}.btn-group input+label.btn-simple--3{background:#6ea0c6;background:var(--color-info)}.btn-group input:checked+label.btn-simple--3{background:#444}html{scroll-behavior:smooth}.btn-simple{border-radius:50px;font-family:Avenir;font-size:18px}.big-blob{background:red;-webkit-clip-path:url(#svgClipPathID);clip-path:url(#svgClipPathID);width:100vw}@media(max-width:767px){.big-blob{display:none}}#big-blob-svg,#small-blobs-svg,.svg{position:absolute}.svg{height:0;width:0}.hero{min-height:60vh}.big-blob{animation:move 10s ease-in-out infinite;background:linear-gradient(180deg,#ac30d3,#09263c);background:linear-gradient(to bottom,var(--color-highlight),var(--color-bg-2));background-size:cover;-webkit-clip-path:url(#big-blob);clip-path:url(#big-blob);height:80%;pointer-events:none;position:absolute;right:0;top:0;translate:20% -20%;width:70vw;z-index:-1}@media(max-width:767px){.big-blob{width:150vw}}@keyframes move{0%{transform:scale(1) translate(100px 100px)}38%{transform:scaleY(1.2) rotate(30deg)}40%{transform:scaleY(1.2) rotate(30deg)}78%{transform:scale(1.2) rotate(-18deg)}80%{transform:scale(1.2) rotate(-15deg)}to{transform:scale(1)}}.is-highlight{-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#fff;color:#ac30d3;color:var(--color-highlight)}@media(max-width:767px){.is-highlight{-webkit-text-stroke-width:0}}.header{margin-bottom:50px;padding:12px 0;position:static;top:0;width:100%;z-index:9}.header__logo{width:250px}.header__inner,.header__links{align-items:center;display:flex;justify-content:space-between}.header__links{flex-basis:20%}.header__link{color:#fff;font-weight:700}.hero__item{display:flex;height:444px;position:relative;translate:10% 0}.hero__item button{cursor:pointer}.hero__item svg{fill:#fff;stroke:#09263c;stroke:var(--color-bg-2);height:100px;transform:rotate(180deg);transition:.5s;width:100px}.hero .iframe-container{left:338px;position:absolute;top:60px}body{font-family:Avenir;overflow-x:hidden}.img,.picture{max-width:100%;width:100%}.container--center{text-align:center}.rfm-marquee img{height:80px;margin-right:50px}.path-0{animation:pathAnim-0 30s;animation-iteration-count:infinite;animation-timing-function:linear}@keyframes pathAnim-0{0%{d:path("M 0,400 L 0,0 C 70.08656818962555,31.90656131913432 140.1731363792511,63.81312263826864 206,94 C 271.8268636207489,124.18687736173136 333.3940226726211,152.65407076605976 395,174 C 456.6059773273789,195.34592923394024 518.2507729302645,209.57059429749228 597,216 C 675.7492270697355,222.42940570250772 771.6028856063207,221.06355204397113 849,206 C 926.3971143936793,190.93644795602887 985.3376846444523,162.17519752662318 1052,166 C 1118.6623153555477,169.82480247337682 1193.0463758158708,206.23565784953627 1259,184 C 1324.9536241841292,161.76434215046373 1382.4768120920646,80.88217107523187 1440,0 L 1440,400 L 0,400 Z")}25%{d:path("M 0,400 L 0,0 C 72.55238749570594,27.38234283751288 145.1047749914119,54.76468567502576 212,96 C 278.8952250085881,137.23531432497424 340.13328753005845,192.32360013740984 406,186 C 471.86671246994155,179.67639986259016 542.3620748883546,111.94091377533492 605,100 C 667.6379251116454,88.05908622466508 722.4184129165235,131.91274476125042 787,166 C 851.5815870834765,200.08725523874958 925.9642734455515,224.40810717966335 996,216 C 1066.0357265544485,207.59189282033665 1131.724493301271,166.45482652009616 1205,125 C 1278.275506698729,83.54517347990382 1359.1377533493646,41.77258673995191 1440,0 L 1440,400 L 0,400 Z")}50%{d:path("M 0,400 L 0,0 C 57.13500515286843,100.95499828237719 114.27001030573686,201.90999656475438 177,212 C 239.72998969426314,222.09000343524562 308.054963929921,141.31501202335966 391,121 C 473.945036070079,100.68498797664034 571.510133974579,140.82995534180696 649,138 C 726.489866025421,135.17004465819304 783.9045001717625,89.36516660941255 847,89 C 910.0954998282375,88.63483339058745 978.8718653383714,133.7093782205428 1042,172 C 1105.1281346616286,210.2906217794572 1162.608038474751,241.79732050841633 1228,212 C 1293.391961525249,182.20267949158367 1366.6959807626245,91.10133974579183 1440,0 L 1440,400 L 0,400 Z")}75%{d:path("M 0,400 L 0,0 C 83.37890759189281,60.32566128478187 166.75781518378562,120.65132256956375 235,125 C 303.2421848162144,129.34867743043625 356.34764685675026,77.72037100652695 416,85 C 475.65235314324974,92.27962899347305 541.8515973892132,158.4671934043284 605,177 C 668.1484026107868,195.5328065956716 728.2459635863964,166.41085537615942 808,145 C 887.7540364136036,123.5891446238406 987.1645482652009,109.88938509103403 1063,138 C 1138.835451734799,166.11061490896597 1191.0958433527999,236.03160425970455 1250,220 C 1308.9041566472001,203.96839574029545 1374.4520783236,101.98419787014772 1440,0 L 1440,400 L 0,400 Z")}to{d:path("M 0,400 L 0,0 C 70.08656818962555,31.90656131913432 140.1731363792511,63.81312263826864 206,94 C 271.8268636207489,124.18687736173136 333.3940226726211,152.65407076605976 395,174 C 456.6059773273789,195.34592923394024 518.2507729302645,209.57059429749228 597,216 C 675.7492270697355,222.42940570250772 771.6028856063207,221.06355204397113 849,206 C 926.3971143936793,190.93644795602887 985.3376846444523,162.17519752662318 1052,166 C 1118.6623153555477,169.82480247337682 1193.0463758158708,206.23565784953627 1259,184 C 1324.9536241841292,161.76434215046373 1382.4768120920646,80.88217107523187 1440,0 L 1440,400 L 0,400 Z")}}.path-1{animation:pathAnim-1 40s;animation-iteration-count:infinite;animation-timing-function:linear}@keyframes pathAnim-1{0%{d:path("M 0,400 L 0,0 C 109.7129186602871,13.559808612440193 219.4258373205742,27.119617224880386 329,80 C 438.5741626794258,132.8803827751196 548.0095693779905,225.08133971291866 620,223 C 691.9904306220095,220.91866028708134 726.5358851674641,124.55502392344499 822,121 C 917.4641148325359,117.44497607655501 1073.8468899521529,206.69856459330143 1187,202 C 1300.1531100478471,197.30143540669857 1370.0765550239234,98.65071770334929 1440,0 L 1440,400 L 0,400 Z")}25%{d:path("M 0,400 L 0,0 C 78.11483253588514,42.44019138755981 156.22966507177028,84.88038277511961 244,109 C 331.7703349282297,133.1196172248804 429.1961722488039,138.91866028708134 525,159 C 620.8038277511961,179.08133971291866 714.9856459330142,213.44497607655504 810,198 C 905.0143540669858,182.55502392344496 1000.8612440191389,117.30143540669856 1106,76 C 1211.138755980861,34.69856459330144 1325.5693779904304,17.34928229665072 1440,0 L 1440,400 L 0,400 Z")}50%{d:path("M 0,400 L 0,0 C 116.71770334928232,56.631578947368425 233.43540669856463,113.26315789473685 330,131 C 426.56459330143537,148.73684210526315 502.97607655502384,127.57894736842105 598,116 C 693.0239234449762,104.42105263157895 806.6602870813398,102.42105263157895 891,101 C 975.3397129186602,99.57894736842105 1030.3827751196172,98.73684210526316 1117,82 C 1203.6172248803828,65.26315789473684 1321.8086124401914,32.63157894736842 1440,0 L 1440,400 L 0,400 Z")}75%{d:path("M 0,400 L 0,0 C 66.13397129186606,79.11004784688996 132.26794258373212,158.2200956937799 247,185 C 361.7320574162679,211.7799043062201 525.0622009569377,186.22966507177034 622,153 C 718.9377990430623,119.77033492822967 749.4832535885168,78.86124401913877 824,92 C 898.5167464114832,105.13875598086123 1017.0047846889952,172.32535885167465 1127,166 C 1236.9952153110048,159.67464114832535 1338.4976076555024,79.83732057416267 1440,0 L 1440,400 L 0,400 Z")}to{d:path("M 0,400 L 0,0 C 109.7129186602871,13.559808612440193 219.4258373205742,27.119617224880386 329,80 C 438.5741626794258,132.8803827751196 548.0095693779905,225.08133971291866 620,223 C 691.9904306220095,220.91866028708134 726.5358851674641,124.55502392344499 822,121 C 917.4641148325359,117.44497607655501 1073.8468899521529,206.69856459330143 1187,202 C 1300.1531100478471,197.30143540669857 1370.0765550239234,98.65071770334929 1440,0 L 1440,400 L 0,400 Z")}}.iframe-container{margin-bottom:20px;overflow:hidden;padding-top:56.25%;position:relative;width:100%}.iframe-container iframe{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.showcase .showcase__video{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}@media(min-width:320px){.showcase .showcase__video{height:50%;width:40%}}@media(min-width:768px){.showcase .showcase__video{height:190px;width:340px}}@media(min-width:992px){.showcase .showcase__video{height:260px;width:460px}}@media(min-width:1200px){.showcase .showcase__video{height:300px;width:550px}}@media(min-width:1440px){.showcase .showcase__video{height:340px;width:600px}}.blobs{min-height:600px;position:relative}.bottom-bloby,.top-bloby{animation:height 11s ease-in-out infinite;background:#ac30d3;background:var(--color-highlight);border-radius:0 0 100% 100%;height:150px;left:0;position:absolute;top:0;width:100%}.bottom-bloby{border-radius:100% 100% 0 0;bottom:0;top:auto}.bloby{fill:#ac30d3;fill:var(--color-highlight);animation:movy 20s ease-in-out infinite;left:0;position:absolute;top:0;transform:translate(5vw,-12vh);transform-origin:50% 50%;width:7vw;z-index:-1}.bloby:first-child{animation:movy 17s ease-in-out infinite;left:5%;width:18vw}.bloby:nth-child(2){animation:movy2 17s ease-in-out infinite;left:25%;width:6vw}.bloby:nth-child(3){animation:movy3 13s ease-in-out infinite;left:35%;width:23vw}.bloby:nth-child(4){animation:movy2 15s ease-in-out infinite;left:45%;width:11vw}.bloby:nth-child(5){animation:movy 16s ease-in-out infinite;left:55%;width:10vw}.bloby:nth-child(6){animation:movy3 16s ease-in-out infinite;left:65%;width:8vw}.bloby:nth-child(7){animation:movy2 14s ease-in-out infinite;left:75%;width:23vw}.bloby:nth-child(8){animation:movy 20s ease-in-out infinite;left:85%;width:19vw}.bloby:nth-child(9){animation:movy3 11s ease-in-out infinite;left:95%;width:6vw}@keyframes height{0%{height:10%}58%{height:15px}to{height:10%}}@keyframes movy{0%{transform:scale(1) translateY(30vw) rotate(12deg)}38%{transform:scale(1.4) translateY(-10vw) rotate(9deg)}58%{transform:scale(1) translateY(-10vw) rotate(33deg)}80%{transform:scale(1.4) translateY(-10vw) rotate(40deg)}to{transform:scale(1) translateY(30vw) rotate(12deg)}}@keyframes movy2{0%{transform:scale(1) translateY(30vw) rotate(12deg)}38%{transform:scale(1.4) translateY(-10vw) rotate(29deg)}58%{transform:scale(1) translateY(-10vw) rotate(14deg)}80%{transform:scale(1.4) translateY(-10vw) rotate(28deg)}to{transform:scale(1) translateY(30vw) rotate(12deg)}}@keyframes movy3{0%{transform:scale(1) translateY(30vw) rotate(12deg)}38%{transform:scale(1.4) translateY(-10vw) rotate(2deg)}58%{transform:scale(1) translateY(-10vw) rotate(7deg)}80%{transform:scale(1.4) translateY(-10vw) rotate(20deg)}to{transform:scale(1) translateY(30vw) rotate(12deg)}}.download-links{display:flex;justify-content:space-around;margin-bottom:70px}@media(max-width:767px){.download-links{display:block}}.download-links a{margin-bottom:12px}.download-links img{width:100px}.download-links li{display:flex;flex-direction:column-reverse;text-align:center}@media(max-width:767px){.download-links li{margin-bottom:64px}}svg.logo .path{stroke-dasharray:1320;stroke-dashoffset:0;fill:#fff;animation:dash 60s linear infinite alternate}@keyframes dash{0%{stroke-dashoffset:1320;fill:#fff}3%{stroke-dashoffset:0;stroke-dasharray:1320;fill:#fff}5%{stroke-dashoffset:0;stroke-dasharray:1320;fill:inherit}10%{stroke-dashoffset:0;stroke-dasharray:1320;fill:inherit}to{stroke-dashoffset:0;stroke-dasharray:1320;fill:inherit}}.text-line{stroke-dasharray:500;stroke-dashoffset:500;animation:dashfont 5s linear forwards,filling 5s ease-in forwards;font-size:80px}@keyframes dashfont{to{stroke-dashoffset:0}}@keyframes filling{0%,90%{fill:#bac736;fill-opacity:0}to{fill:#bac736;fill-opacity:1}}.btn-switch{display:block;position:relative;-webkit-user-select:none;user-select:none}.btn-switch__checkbox{display:none}.btn-switch__label{cursor:pointer;display:block;overflow:hidden;padding:0;text-indent:-999em}.btn-switch__label:before{bottom:0;content:"";display:block;margin:0;position:absolute;top:0}.btn-switch__checkbox:checked+.btn-switch__label:before{right:0}.btn-switch{width:var(--btn-switch-width)}.btn-switch label.btn-switch__label{background-color:var(--btn-switch-bg-inactive);border:var(--btn-switch-bg-inactive-border)!important;border-radius:var(--btn-switch-height);height:var(--btn-switch-height);line-height:var(--btn-switch-height);transition:var(--btn-switch-transition-in)}.btn-switch__label:before{background:var(--btn-switch-knob-bg);border:var(--btn-switch-knob-border-active);border-radius:var(--btn-switch-height);box-shadow:0 3px 3px 0 #0000000d,0 2px 2px 0 #0000001a,0 3px 1px 0 #0000000d;height:var(--btn-switch-knob-width);right:calc(var(--btn-switch-width) - var(--btn-switch-height) + var(--btn-switch-knob-top));top:var(--btn-switch-knob-top);transition:var(--btn-switch-transition-out);width:var(--btn-switch-knob-width)}.btn-switch__checkbox:checked+.btn-switch__label:before{right:var(--btn-switch-knob-top)}.btn-switch__checkbox:checked+.btn-switch__label{background-color:var(--btn-switch-bg-active)}.btn-switch__checkbox:checked+.btn-switch__label,.btn-switch__checkbox:checked+.btn-switch__label:before{border-color:var(--btn-switch-bg-active);border:var(--btn-switch-border !important)}.btn-switch{--btn-switch-height:30px;--btn-switch-width:calc(var(--btn-switch-height)*2);--btn-switch-knob-width:calc(var(--btn-switch-height) - 2px);--btn-switch-knob-top:0px;--btn-switch-knob-bg:#fff;--btn-switch-knob-border-active:1px solid var(--color-border-1);--btn-switch-border:1px solid var(--color-success);--btn-switch-transition-in:background-color 0.3s ease-in;--btn-switch-transition-out:all 0.3s ease-in 0s;--btn-switch-bg-active:var(--color-success);--btn-switch-bg-inactive:#fff;--btn-switch-bg-inactive-border:1px solid var(--color-border-1)}svg.icon.icon.icon--xs{height:var(--icon-xs);width:var(--icon-xs)}svg.icon.icon.icon--sm{height:var(--icon-sm);width:var(--icon-sm)}svg.icon.icon.icon--md{height:var(--icon-md);width:var(--icon-md)}svg.icon.icon.icon--lg{height:var(--icon-lg);width:var(--icon-lg)}svg.icon.icon.icon--xl{height:var(--icon-xl);width:var(--icon-xl)}[class*=link-]{display:inline-table}button[class*=link-]{background:none;border-left:none;border-right:none;font-size:inherit;margin:0}a{color:inherit;text-decoration:none}.link-simple:after{content:"";display:block;opacity:0}.link-simple.active:after,.link-simple:active:after,.link-simple:hover:after{content:"";display:block;opacity:1}.link-simple{padding-bottom:3px;text-decoration:none}.link-simple,.link-simple:after{transition:var(--link-simple-transition)}.link-simple:after{background:currentcolor;display:none!important;height:2px;width:1%}.link-simple.active:after,.link-simple:active:after,.link-simple:hover:after{height:2px;width:100%}.link-simple{--link-simple-transition:0.5s}.link-simple--1{color:var(--blue1);font-weight:700}.link-simple--1:hover{color:var(--blue2)}.link-simple--1:disabled{color:var(--color-disabled)}.embed-responsive{display:block;height:0;overflow:hidden;padding:0 0 56.25%;position:relative}.embed-responsive__item{border:0;bottom:0;height:100%;left:0;position:absolute;top:0;width:100%}svg.icon.icon.icon{vertical-align:middle}.list--icons--xs>* svg.icon.icon,svg.icon.icon.icon--xs{height:24px;height:var(--icon-xs);width:24px;width:var(--icon-xs)}.list--icons--sm>* svg.icon.icon,svg.icon.icon.icon--sm{height:32px;height:var(--icon-sm);width:32px;width:var(--icon-sm)}.list--icons--md>* svg.icon.icon,svg.icon.icon.icon--md{height:48px;height:var(--icon-md);width:48px;width:var(--icon-md)}.list--icons--lg>* svg.icon.icon,svg.icon.icon.icon--lg{height:56px;height:var(--icon-lg);width:56px;width:var(--icon-lg)}.list--icons--xl>* svg.icon.icon,svg.icon.icon.icon--xl{height:128px;height:var(--icon-xl);width:128px;width:var(--icon-xl)}svg.icon{vertical-align:middle}.list li{list-style-type:none}.list li:last-child{margin-bottom:0}.list--bullets li{position:relative}.list--bullets li:before{content:"";position:absolute}.list--icons>*{display:table;position:relative}.list--icons--xl>*{min-height:128px;min-height:var(--icon-xl);padding-left:138px;padding-left:calc(var(--icon-xl) + 10px)}.list--icons--lg>*{min-height:56px;min-height:var(--icon-lg);padding-left:66px;padding-left:calc(var(--icon-lg) + 10px)}.list--icons--md>*{min-height:48px;min-height:var(--icon-md);padding-left:58px;padding-left:calc(var(--icon-md) + 10px)}.list--icons--sm>*{min-height:32px;min-height:var(--icon-sm);padding-left:42px;padding-left:calc(var(--icon-sm) + 10px)}.list--icons--xs>*{min-height:24px;min-height:var(--icon-xs);padding-left:34px;padding-left:calc(var(--icon-xs) + 10px)}.list--icons>*>div.text{display:table-cell;vertical-align:middle}.list--icons .icon{left:0;position:absolute;text-align:center;top:0}.list--inline,.list--inline>li{display:inline-block}.list--inline>li{margin-bottom:0}.desc-list--horizontal dt{clear:left;float:left;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}@media(max-width:767px){.desc-list--horizontal dt{float:none;text-align:left}}ol.list{counter-reset:section}ol.list li{list-style-type:none;position:relative}ol.list li:before{content:counter(section);counter-increment:section;display:inline-block;position:absolute}.list{margin-bottom:var(--list-mb)}.list li{margin-bottom:var(--list-li-mb)}.list--bullets li{padding-left:calc(var(--list-bullets-size)*2)}.list--bullets li:before{background:var(--list-bullets-color);border-radius:100%;height:var(--list-bullets-size);left:0;top:var(--list-bullets-top);width:var(--list-bullets-size)}.desc-list{margin-bottom:var(--desc-list-mb)}.desc-list dt{font-weight:700;margin-bottom:var(--desc-list-dt-mb)}.desc-list dd{margin-bottom:var(--desc-list-dd-mb)}.desc-list--horizontal dt{width:var(--desc-list-dt-width)}@media(max-width:767px){.desc-list--horizontal dt{width:100%}}.desc-list--horizontal dd{margin-left:calc(var(--desc-list-dt-width) + 20px)}@media(max-width:767px){.desc-list--horizontal dd{margin-left:0}}ol.list{padding-left:var(--ol-padding)}ol.list li:before{left:-var(--ol-padding)}.list{--list-mb:var(--margin3);--list-li-mb:var(--margin2);--list-bullets-size:6px;--list-bullets-top:5px;--list-bullets-color:var(--color-bg-primary);--desc-list-mb:var(--margin1);--desc-list-dt-mb:5px;--desc-list-dd-mb:var(--margin1);--desc-list-dt-width:160px;--ol-padding:0px}ol.list li:before{margin-right:10px;position:static}ol.list{margin-bottom:0;text-align:center}.loader-circle{animation:load8 1s linear infinite;position:relative;text-indent:-9999em;transform:translateZ(0)}.loader-circle,.loader-circle:after{border-radius:50%}@keyframes load8{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loader-circle{border:var(--loader-circle-border) solid #fff3;border-left:var(--loader-circle-border) solid var(--loader-circle-color);font-size:10px;margin-bottom:var(--loader-circle-mb)}.loader-circle,.loader-circle:after{height:var(--loader-circle-diameter);width:var(--loader-circle-diameter)}.loader-circle{--loader-circle-diameter:10rem;--loader-circle-border:1.1rem;--loader-circle-color:var(--color-danger);--loader-circle-mb:var(--margin3)}.progress{appearance:none;-webkit-appearance:none;-moz-appearance:none;border:none;width:100%}.progress span{display:block;height:100%;text-align:center}.progress{height:var(--progress-height);margin-bottom:var(--progress-mb);transition:var(--progress-transition)}.progress span{font-size:var(--progress-font-size);line-height:var(--progress-height)}.progress{--progress-height:20px;--progress-mb:var(--margin3);--progress-bg:var(--color-border-1);--progress-color:#fff;--progress-font-size:12px;--progress-transition:width 0.6s ease}.progress--success{background-color:var(--progress-bg)}.progress--success::-webkit-progress-bar{background-color:var(--progress-bg)}.progress--success::-webkit-progress-value{background-color:var(--color-success);-webkit-transition:width 1s;transition:width 1s}.progress--success::-moz-progress-bar{background-color:var(--color-success)}.progress--success span{background-color:var(--color-success);color:#fff}.form--simple .form__group{position:relative}.form--simple .form__group--success .form__group__help{color:#9c3;color:var(--color-success)}.form--simple .form__group--info .form__group__help{color:#6ea0c6;color:var(--color-info)}.form--simple .form__group--warning .form__group__help{color:#fb7d0c;color:var(--color-warning)}.form--simple .form__group--danger .form__group__help{color:#ec3457;color:var(--color-danger)}.form--simple select{-webkit-appearance:none;appearance:none;padding-right:20px}.form--simple select:focus{background:var(--form-control-bg-hover)}.form--simple{margin-bottom:var(--form-mb)}.form--simple label{margin-bottom:var(--form-label-mb)}.form--simple input+label{margin-bottom:0}.form--simple .form__group>.form__addon{border-radius:var(--form-control-border-radius);margin-bottom:0;padding:0 20px}.form--simple .form__group .form__help{float:right;font-size:var(--form-help-text-size);padding:var(--form-help-padding)}.form--simple .form__group--success input,.form--simple .form__group--success label,.form--simple .form__group--success select,.form--simple .form__group--success textarea{border-color:#9c3;border-color:var(--color-success);color:#9c3;color:var(--color-success)}.form--simple .form__group--success .form__error,.form--simple .form__group--success .form__group__help{color:#9c3;color:var(--color-success)}.form--simple .form__group--success svg{fill:#9c3;fill:var(--color-success)}.form--simple .form__group--info input,.form--simple .form__group--info label,.form--simple .form__group--info select,.form--simple .form__group--info textarea{background:#6ea0c6;background:var(--color-info);border-color:#6ea0c6;border-color:var(--color-info)}.form--simple .form__group--info .form__error,.form--simple .form__group--info .form__group__help{color:#6ea0c6;color:var(--color-info)}.form--simple .form__group--info svg{fill:#6ea0c6;fill:var(--color-info)}.form--simple .form__group--warning input,.form--simple .form__group--warning label,.form--simple .form__group--warning select,.form--simple .form__group--warning textarea{border-color:#fb7d0c;border-color:var(--color-warning);color:#fb7d0c;color:var(--color-warning)}.form--simple .form__group--warning .form__error,.form--simple .form__group--warning .form__group__help{color:#fb7d0c;color:var(--color-warning)}.form--simple .form__group--warning svg{fill:#fb7d0c;fill:var(--color-warning)}.form--simple .form__group--danger input,.form--simple .form__group--danger label,.form--simple .form__group--danger select,.form--simple .form__group--danger textarea{border-color:#ec3457;border-color:var(--color-danger);color:#ec3457;color:var(--color-danger)}.form--simple .form__group--danger .form__error,.form--simple .form__group--danger .form__group__help{color:#ec3457;color:var(--color-danger)}.form--simple .form__group--danger svg{fill:#ec3457;fill:var(--color-danger)}.form--simple .form__group .form__icon{top:var(--form-icon-top)}.form--simple .form__group .form__icon svg{height:var(--form-icon-size);right:var(--form-icon-right);width:var(--form-icon-size)}.form--simple .form__control,.form--simple select,.form--simple textarea{background:var(--form-control-bg);border:var(--form-control-border);border-radius:var(--form-control-border-radius);box-shadow:var(--form-control-box-shadow);padding:var(--form-control-padding)}.form--simple .form__control:focus,.form--simple select:focus,.form--simple textarea:focus{background-color:var(--form-control-bg-hover);border:var(--form-control-border-hover)}.form--simple select{-moz-appearance:none;background:var(--form-select-caret) no-repeat;background-color:var(--form-control-bg);background-position:var(--form-select-caret-position);background-size:100% 100%;background-size:var(--form-select-caret-size) var(--form-select-caret-size);padding-right:40px}.form--simple select:focus{background:var(--form-select-caret) no-repeat;background-color:var(--form-control-bg-hover);background-position:var(--form-select-caret-position);background-size:100% 100%;background-size:var(--form-select-caret-size) var(--form-select-caret-size);border:var(--form-control-border-hover)}.form--simple{--form-control-border:1px solid var(--brown-grey);--form-mb:var(--margin3);--form-label-mb:var(--margin1);--form-control-border-radius:0;--form-control-padding:4px 10px;--form-control-box-shadow:none;--form-control-bg:#fff;--form-control-border-hover:1px solid var(--blue1);--form-control-bg-hover:#fff;--form-help-padding:12px 0;--form-help-text-size:12px;--form-icon-size:32px;--form-icon-right:10px;--form-icon-top:25px;--form-select-caret:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxMCI+PHBhdGggZD0iTS4wNTIgMS44OCAyLjAxIDBsNS44NzUgNS42NDJMMTMuNzYuMDAybDEuOTU4IDEuODgtNy44MzMgNy41MnoiIGZpbGw9IiM2NjYiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==);--form-select-caret-size:16px;--form-select-caret-position:right 12px center}.form__group>.radio-simple{cursor:pointer;display:inline-block;-webkit-user-select:none;user-select:none}.form__group>.radio-simple input{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.form__group>.radio-simple label{cursor:pointer;pointer-events:all;position:relative!important}.form__group>.radio-simple label:after,.form__group>.radio-simple label:before{box-sizing:border-box;content:"";display:inline-block;position:absolute}.form__group>.radio-simple label:after{opacity:0}.form__group>.radio-simple input:checked+label:after{opacity:1}.form__group>.radio-simple+.radio-simple{margin-top:.8rem;margin-top:var(--margin1)}.form__group>.radio-simple input:focus+label:before{border:var(--radio-simple-fosus)}.form__group>.radio-simple label{clip:rect(0,0,0,0);border:auto;height:auto;line-height:var(--radio-simple-size);margin:auto;overflow:hidden;padding:auto;position:relative;width:auto}.form__group>.radio-simple label:before{border:var(--radio-simple-border);border-radius:100%;height:var(--radio-simple-size);left:0;width:var(--radio-simple-size)}.form__group>.radio-simple label:after{background:var(--radio-simple-inner-bg);border-radius:100%;height:2px;left:2;left:var(--radio-simple-size/2);top:2;top:var(--radio-simple-size/2);transition:var(--radio-simple-inner-transition-uncheck);width:2px}.form__group>.radio-simple input:checked+label:after{background:var(--radio-simple-inner-bg);border-radius:100%;height:var(--radio-simple-inner-width);left:var(--radio-simple-inner-left);top:var(--radio-simple-inner-left);transform-origin:center;transition:var(--radio-simple-inner-transition-check);width:var(--radio-simple-inner-width)}.radio-simple{--radio-simple-size:16px;--radio-simple-size-xs:10px;--radio-simple-size-sm:15px;--radio-simple-size-lg:30px;--radio-simple-border:1px solid var(--grey1);--radio-simple-fosus:1px solid var(--grey1);--radio-simple-inner-width:8px;--radio-simple-inner-left:4px;--radio-simple-inner-top:4px;--radio-simple-inner-bg:var(--blue1);--radio-simple-inner-transition-check:all 0.2s ease-in-out;--radio-simple-inner-transition-uncheck:all 0.2s ease-in-out}.radio-simple--xs label{line-height:var(--radio-simple-size-xs);padding-left:var(--radio-simple-size-xs)var(--radio-simple-size-xs)/2}.radio-simple--xs label:before{height:var(--radio-simple-size-xs);left:0;width:var(--radio-simple-size-xs)}.radio-simple--xs label:after{left:var(--radio-simple-size-xs)/2;top:var(--radio-simple-size-xs)/2}.radio-simple--xs input:checked+label:after{height:var(--radio-simple-size-xs)-var(--radio-simple-size-xs)/4;left:var(--radio-simple-size-xs)/8;top:var(--radio-simple-size-xs)/8;width:var(--radio-simple-size-xs)-var(--radio-simple-size-xs)/4}.radio-simple--sm label{line-height:var(--radio-simple-size-sm);padding-left:var(--radio-simple-size-sm)var(--radio-simple-size-sm)/2}.radio-simple--sm label:before{height:var(--radio-simple-size-sm);left:0;width:var(--radio-simple-size-sm)}.radio-simple--sm label:after{left:var(--radio-simple-size-sm)/2;top:var(--radio-simple-size-sm)/2}.radio-simple--sm input:checked+label:after{height:var(--radio-simple-size-sm)-var(--radio-simple-size-sm)/4;left:var(--radio-simple-size-sm)/8;top:var(--radio-simple-size-sm)/8;width:var(--radio-simple-size-sm)-var(--radio-simple-size-sm)/4}.radio-simple--lg label{line-height:var(--radio-simple-size-lg);padding-left:var(--radio-simple-size-lg)var(--radio-simple-size-lg)/2}.radio-simple--lg label:before{height:var(--radio-simple-size-lg);left:0;width:var(--radio-simple-size-lg)}.radio-simple--lg label:after{left:var(--radio-simple-size-lg)/2;top:var(--radio-simple-size-lg)/2}.radio-simple--lg input:checked+label:after{height:var(--radio-simple-size-lg)-var(--radio-simple-size-lg)/4;left:var(--radio-simple-size-lg)/8;top:var(--radio-simple-size-lg)/8;width:var(--radio-simple-size-lg)-var(--radio-simple-size-lg)/4}.checkbox-simple{cursor:pointer;display:inline-block;-webkit-user-select:none;user-select:none}.checkbox-simple input{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.checkbox-simple label{cursor:pointer;position:relative}.checkbox-simple label:after,.checkbox-simple label:before{box-sizing:border-box;content:"";display:inline-block;position:absolute}.checkbox-simple label:after{border-radius:100%;opacity:0}.checkbox-simple input:checked+label:after{opacity:1}.form--inline .form__group>.checkbox-simple{display:inline-block;margin:0;vertical-align:middle}.form__group>.checkbox-simple input:focus+label:before{border:var(--checkbox-simple-focus)}.form__group>.checkbox-simple label{line-height:var(--checkbox-simple-size);padding-left:calc(var(--checkbox-simple-size) + var(--checkbox-simple-size)/2)}.form__group>.checkbox-simple label:before{border:var(--checkbox-simple-border);border-radius:0;height:var(--checkbox-simple-size);left:0;width:var(--checkbox-simple-size)}.form__group>.checkbox-simple label:after{height:1px;left:4px;top:4px;transition:var(--checkbox-simple-inner-transition-uncheck);width:1px}.form__group>.checkbox-simple input:checked+label:before{background:var(--checkbox-simple-inner-bg-check);border:var(--checkbox-simple-border-check)}.form__group>.checkbox-simple input:checked+label:after{background:var(--checkbox-simple-tick) no-repeat;background-size:100% 100%;border-radius:0;height:var(--checkbox-simple-size);left:0;top:-2px;transition:var(--checkbox-simple-inner-transition-check);width:var(--checkbox-simple-size)}.checkbox-simple--xs label{line-height:var(--checkbox-simple-size-xs);padding-left:var(--checkbox-simple-size-xs)var(--checkbox-simple-size-xs)/2}.checkbox-simple--xs label:before{height:var(--checkbox-simple-size-xs);width:var(--checkbox-simple-size-xs)}.checkbox-simple--xs label:after{left:var(--checkbox-simple-size-xs)/2;top:var(--checkbox-simple-size-xs)/2}.checkbox-simple--xs input:checked+label:after{height:var(--checkbox-simple-size-xs);width:var(--checkbox-simple-size-xs)}.checkbox-simple--sm label{line-height:var(--checkbox-simple-size-sm);padding-left:var(--checkbox-simple-size-sm)var(--checkbox-simple-size-sm)/2}.checkbox-simple--sm label:before{height:var(--checkbox-simple-size-sm);width:var(--checkbox-simple-size-sm)}.checkbox-simple--sm label:after{left:var(--checkbox-simple-size-sm)/2;top:var(--checkbox-simple-size-sm)/2}.checkbox-simple--sm input:checked+label:after{height:var(--checkbox-simple-size-sm);width:var(--checkbox-simple-size-sm)}.checkbox-simple--lg label{line-height:var(--checkbox-simple-size-lg);padding-left:var(--checkbox-simple-size-lg)var(--checkbox-simple-size-lg)/2}.checkbox-simple--lg label:before{height:var(--checkbox-simple-size-lg);width:var(--checkbox-simple-size-lg)}.checkbox-simple--lg label:after{left:var(--checkbox-simple-size-lg)/2;top:var(--checkbox-simple-size-lg)/2}.checkbox-simple--lg input:checked+label:after{height:var(--checkbox-simple-size-lg);width:var(--checkbox-simple-size-lg)}.checkbox-simple{--checkbox-simple-size:20px;--checkbox-simple-size-xs:10px;--checkbox-simple-size-sm:15px;--checkbox-simple-size-lg:30px;--checkbox-simple-border:1px solid var(--grey1);--checkbox-simple-border-check:var(--checkbox-simple-border);--checkbox-simple-focus:1px solid var(--grey1);--checkbox-simple-inner-bg:#fff;--checkbox-simple-inner-bg-check:var(--checkbox-simple-inner-bg);--checkbox-simple-inner-transition-check:opacity 0.4s ease-in-out;--checkbox-simple-inner-transition-uncheck:opacity 0.4s ease-in-out;--checkbox-simple-tick:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCI+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJtMTAuNTM2IDE2LjE5MiA2LjM2My02LjM2NGExIDEgMCAxIDEgMS40MTUgMS40MTVsLTcuMDcxIDcuMDdhMSAxIDAgMCAxLTEuNDE1IDBsLTMuNTM1LTMuNTM1YTEgMSAwIDAgMSAxLjQxNC0xLjQxNGwyLjgyOSAyLjgyOHoiIGZpbGw9ImF1dG8iLz48L3N2Zz4=)}input[type=range]{padding:0!important}input[type=range]::-webkit-slider-runnable-track{background:var(--form-slider-track-bg);border-radius:0;cursor:pointer;height:var(--form-slider-track-height);-webkit-transition:var(--form-slider-track-transition);transition:var(--form-slider-track-transition)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--form-slider-thumb-bg);border:0;border:var(--form-slider-thumb-border-size) solid var(--form-slider-thumb-border-color);border-radius:100%;box-shadow:var(--form-slider-thumb-shadow);box-sizing:border-box;cursor:pointer;height:var(--form-slider-thumb-size);margin-top:calc((var(--form-slider-track-height))/2 - var(--form-slider-thumb-size)/2);max-height:var(--form-slider-thumb-size);max-width:var(--form-slider-thumb-size);width:var(--form-slider-thumb-size)}input[type=range]:focus::-webkit-slider-runnable-track{background:var(--form-slider-track-bg-hover)}input[type=range]::-moz-range-track{background:var(--form-slider-track-bg);border-radius:0;cursor:pointer;height:var(--form-slider-track-height);-moz-transition:var(--form-slider-track-transition);transition:var(--form-slider-track-transition)}input[type=range]::-moz-range-thumb{-webkit-appearance:none;background:var(--form-slider-thumb-bg);border:0;border:var(--form-slider-thumb-border-size) solid var(--form-slider-thumb-border-color);border-radius:100%;box-shadow:var(--form-slider-thumb-shadow);box-sizing:border-box;cursor:pointer;height:var(--form-slider-thumb-size);margin-top:calc((var(--form-slider-track-height))/2 - var(--form-slider-thumb-size)/2);max-height:var(--form-slider-thumb-size);max-width:var(--form-slider-thumb-size);width:var(--form-slider-thumb-size)}input[type=range]::-ms-track{background:var(--form-slider-track-bg);border-radius:0;cursor:pointer;height:var(--form-slider-track-height);-ms-transition:var(--form-slider-track-transition);transition:var(--form-slider-track-transition)}input[type=range]::-ms-thumb{-webkit-appearance:none;background:var(--form-slider-thumb-bg);border:0;border:var(--form-slider-thumb-border-size) solid var(--form-slider-thumb-border-color);border-radius:100%;box-shadow:var(--form-slider-thumb-shadow);box-sizing:border-box;cursor:pointer;height:var(--form-slider-thumb-size);margin-top:calc((var(--form-slider-track-height))/2 - var(--form-slider-thumb-size)/2);max-height:var(--form-slider-thumb-size);max-width:var(--form-slider-thumb-size);width:var(--form-slider-thumb-size)}input[type=range]{--form-slider-track-height:10px;--form-slider-track-bg:var(--grey3);--form-slider-track-bg-hover:var(--grey3);--form-slider-track-border-radius:0;--form-slider-track-transition:all 0.2s ease;--form-slider-thumb-size:30px;--form-slider-thumb-border-size:0px;--form-slider-thumb-bg:var(--blue1);--form-slider-thumb-border-color:green;--form-slider-thumb-border-radius:100%;--form-slider-thumb-shadow:#000}.section{--color-content:var(--color-highlight)}.section--dark .section__content{padding-bottom:100px}.section--dark svg{fill:#222}.section--dark .section__content,.section--dark .section__content:before{background:#222}.section--early .section__content{padding-top:100px}.section--early .h1,.section--early .h2,.section--early .h3,.section--early .h4,.section--early li,.section--early ol,.section--early p{color:var(--color-text-2)!important}.section--early svg{fill:#fbe16d}.section--early .section__content,.section--early .section__content:before{background:var(--color-bg-5)}.section--igg .section__content{padding-top:100px}.section--igg .h1,.section--igg .h2,.section--igg .h3,.section--igg .h4,.section--igg li,.section--igg ol,.section--igg p{color:var(--white)!important}.section--igg svg{fill:#fbe16d}.section--igg .section__content,.section--igg .section__content:before{background:var(--color-bg-6)}.section__wave{fill:var(--color-content)}.section__content{background:var(--color-content);color:#fff;position:relative}.section__content:before{background:var(--color-content);content:"";display:block;height:8px;position:absolute;top:-8px;width:100%}.section .h1,.section .h2,.section .h3,.section .h4,.section p{color:#fff;text-align:center}.lamp{display:none!important;height:100vh;left:50%;min-width:100vw;top:50%;transform:translate(-50%,-50%);width:100vw;z-index:-1}.lamp,.lava{position:absolute}.lava{filter:url(#goo);height:100%;left:0;top:0;width:100%}.blob{background:var(--color-highlight);border-radius:50%;position:absolute}.blob.top{top:-3%}.blob.bottom,.blob.top{border-radius:50%;height:4%;left:0;width:100%}.blob.bottom{bottom:-3%}.blob:first-child{animation:wobble 4s ease-in-out infinite alternate,blob-one 13s ease-in-out infinite;bottom:-15%;height:200px;left:35%;width:200px}.blob:nth-child(2){animation:wobble 5s ease-in-out infinite alternate,blob-two 22s ease-in-out infinite;bottom:-65%;height:330px;right:24%;width:330px}.blob:nth-child(3){animation:wobble 6s ease-in-out infinite alternate,blob-three 16s ease-in-out infinite;bottom:-15%;height:150px;left:34%;width:150px}.blob:nth-child(4){animation:wobble 7s ease-in-out infinite alternate,blob-four 12s ease-in-out infinite;animation:wobble 8s ease-in-out infinite alternate,blob-four 12s ease-in-out infinite;bottom:-19%;height:235px;left:30%;width:235px}.blob:nth-child(5){animation:wobble 9s ease-in-out infinite alternate,blob-five 32s ease-in-out infinite;bottom:-25%;height:55px;left:34%;width:55px}.blob:nth-child(6){animation:wobble 10s ease-in-out infinite alternate,blob-six 12s ease-in-out infinite;bottom:-25%;height:35px;right:34%;width:35px}.blob:nth-child(7){animation:wobble 11s ease-in-out infinite alternate,blob-seven 32s ease-in-out infinite;bottom:-85%;height:435px;right:40%;width:435px}@keyframes blob-one{0%,to{transform:translatey(0)}50%{transform:translatey(-700%)}}@keyframes blob-two{0%,to{transform:translatey(0)}50%{transform:translatey(-420%)}}@keyframes blob-three{0%,to{transform:translatey(0)}50%{transform:translatey(-305%)}}@keyframes blob-four{0%,to{transform:translatey(0)}50%{transform:translatey(-605%)}}@keyframes blob-five{0%,to{transform:translatey(0)}50%{transform:translatey(-700%)}}@keyframes blob-six{0%,to{transform:translatey(0)}50%{transform:translatey(-700%)}}@keyframes blob-seven{0%,to{transform:translatey(0)}50%{transform:translatey(-300%)}}@keyframes wobble{50%{border-radius:42% 58% 70% 30%/45% 45% 55% 55%}to{border-radius:38% 52% 75% 36%/50% 40% 50% 60%}}.modal{align-items:center;-webkit-backdrop-filter:var(--modal-background-filter);backdrop-filter:var(--modal-background-filter);background-color:var(--modal-background);bottom:0;display:flex;height:100vh;justify-content:center;left:0;margin:auto;opacity:0;pointer-events:none;position:fixed;right:0;top:0;width:100vw;z-index:99}.modal,.modal.is-shown{transition:var(--modal-transition)}.modal.is-shown{opacity:1;pointer-events:all}.modal.is-shown .modal__box{margin-bottom:0;transition:var(--modal-transition)}.modal__box{-webkit-app-region:no-drag;background:var(--modal-box-background);border:var(--modal-box-border);border-radius:var(--modal-box-radius);display:flex;flex-direction:column;margin-bottom:var(--modal-box-initial-position);padding:var(--modal-box-padding)}.modal__header{margin-bottom:var(--modal-header-mb);position:relative}.modal__close{line-height:0;position:absolute;right:0;top:0}.modal__body{flex:1 1;margin-bottom:var(--modal-body-mb);max-height:50vh;overflow:auto}.modal__footer{text-align:var(--modal-footer-align)}.modal__footer .btn-simple{margin-bottom:0}.modal--xs .modal__box{max-height:var(--modal-xs-height);max-width:var(--modal-xs-width)}.modal--sm .modal__box{width:var(--modal-sm-width)}.modal--full .modal__header{display:none}.modal--full .modal__box{border:0;height:100vh;padding:0;width:100vw}.modal--full .modal__body{max-height:100%;overflow:hidden}.modal--full .modal__footer{display:none}.modal{--modal-transition:0.5s;--modal-background:#ffffff1a;--modal-background-filter:blur(10px);--modal-box-initial-position:-200vh;--modal-box-background:#fff;--modal-box-radius:8px;--modal-box-padding:20px;--modal-box-border:1px solid #cbcbcb;--modal-header-mb:24px;--modal-body-mb:24px;--modal-footer-align:center;--modal-xs-width:40vw;--modal-xs-height:80vh;--modal-sm-width:50vw}.modal__close{color:#fff;font-size:2rem;line-height:inherit;right:1rem;top:.6rem}.modal--windows .modal__box{overflow:hidden;padding:0;width:75vw}.modal--windows .modal__header{background:#222;padding:20px 0;text-align:center}.modal--windows .modal__header .h4{color:#fff;margin-bottom:0}.modal--windows .modal__body{display:flex;justify-content:space-around;max-height:80vh;padding:0 20px;text-align:center}@media(max-width:767px){.modal--windows .modal__body{display:block}}.modal--windows .modal__body>div{flex-basis:50%}@media(max-width:767px){.modal--windows .modal__body>div+div{margin-top:50px}}.modal--windows .modal__body .btn-simple{margin-bottom:0}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{border:0;font-size:100%;font:inherit;margin:0;padding:0;vertical-align:initial}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}table{border-collapse:collapse;border-spacing:0}::-moz-focus-inner{border:0;padding:0}input,select,textarea{-webkit-appearance:none}a:active,a:focus,button::-moz-focus-inner,input[type=button]::-moz-focus-inner,input[type=file]>input[type=button]::-moz-focus-inner,input[type=reset]::-moz-focus-inner,input[type=submit]::-moz-focus-inner,select::-moz-focus-inner{border:0;outline:0}*{-webkit-tap-highlight-color:rgba(0,0,0,0)}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}@media only screen and (orientation:landscape){.wrapper{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}section{contain-intrinsic-size:100vh;content-visibility:auto}@media print{@page{margin:2cm}*,:after,:before,:first-letter,blockquote:first-line,div:first-line,li:first-line,p:first-line{background:#0000!important;box-shadow:none!important;color:#000!important;text-shadow:none!important}body{background:#fff;color:#000}footer{display:none}img{max-width:100%!important}*{page-break-inside:avoid}a[href^=http]:after{content:" <" attr(href) "> "}a[href^="#"]:after{content:""}}@media print and (color){*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}*{box-sizing:border-box}.container{margin-left:auto;margin-right:auto;min-width:320px;padding-left:16px;padding-left:calc(var(--grid-gutter)/2);padding-right:16px;padding-right:calc(var(--grid-gutter)/2);transition:width .4s}@media(min-width:768px){.container{width:720px;width:var(--container-sm)}}@media(min-width:992px){.container{width:944px;width:var(--container-md)}}@media(min-width:1200px){.container{width:1136px;width:var(--container-lg)}}@media(min-width:1440px){.container{width:1248px;width:var(--container-xl)}}.container--fluid,.container--mixed{padding:0;width:100%}.container--mixed{display:block;max-width:1600px;max-width:var(--container-grid-mixed-width)}.container--grid{grid-column-gap:32px;grid-column-gap:var(--grid-gutter);display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}@media(max-width:767px){.container--grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.container--grid>*{grid-column-end:span 12}@media(max-width:767px){.container--grid>*{grid-column-end:span 4}}.container--grid--no-padding{grid-column-gap:0}.container--grid--justify-start{justify-content:start}.container--grid--justify-center{justify-content:center}.container--grid--justify-stretch{justify-content:stretch}.container--grid--justify-end{justify-content:end}@media(min-width:1px){[data-col-xs="1"]{grid-column-end:span 1}[data-col-xs="2"]{grid-column-end:span 2}[data-col-xs="3"]{grid-column-end:span 3}[data-col-xs="4"]{grid-column-end:span 4}[data-col-start-xs="1"]{grid-column-start:1}[data-col-start-xs="2"]{grid-column-start:2}[data-col-start-xs="3"]{grid-column-start:3}[data-col-start-xs="4"]{grid-column-start:4}}@media(min-width:768px){[data-col-sm="1"]{grid-column-end:span 1}[data-col-sm="2"]{grid-column-end:span 2}[data-col-sm="3"]{grid-column-end:span 3}[data-col-sm="4"]{grid-column-end:span 4}[data-col-sm="5"]{grid-column-end:span 5}[data-col-sm="6"]{grid-column-end:span 6}[data-col-sm="7"]{grid-column-end:span 7}[data-col-sm="8"]{grid-column-end:span 8}[data-col-sm="9"]{grid-column-end:span 9}[data-col-sm="10"]{grid-column-end:span 10}[data-col-sm="11"]{grid-column-end:span 11}[data-col-sm="12"]{grid-column-end:span 12}[data-col-start-sm="1"]{grid-column-start:1}[data-col-start-sm="2"]{grid-column-start:2}[data-col-start-sm="3"]{grid-column-start:3}[data-col-start-sm="4"]{grid-column-start:4}[data-col-start-sm="5"]{grid-column-start:5}[data-col-start-sm="6"]{grid-column-start:6}[data-col-start-sm="7"]{grid-column-start:7}[data-col-start-sm="8"]{grid-column-start:8}[data-col-start-sm="9"]{grid-column-start:9}[data-col-start-sm="10"]{grid-column-start:10}[data-col-start-sm="11"]{grid-column-start:11}[data-col-start-sm="12"]{grid-column-start:12}}@media(min-width:992px){[data-col-md="1"]{grid-column-end:span 1}[data-col-md="2"]{grid-column-end:span 2}[data-col-md="3"]{grid-column-end:span 3}[data-col-md="4"]{grid-column-end:span 4}[data-col-md="5"]{grid-column-end:span 5}[data-col-md="6"]{grid-column-end:span 6}[data-col-md="7"]{grid-column-end:span 7}[data-col-md="8"]{grid-column-end:span 8}[data-col-md="9"]{grid-column-end:span 9}[data-col-md="10"]{grid-column-end:span 10}[data-col-md="11"]{grid-column-end:span 11}[data-col-md="12"]{grid-column-end:span 12}[data-col-start-md="1"]{grid-column-start:1}[data-col-start-md="2"]{grid-column-start:2}[data-col-start-md="3"]{grid-column-start:3}[data-col-start-md="4"]{grid-column-start:4}[data-col-start-md="5"]{grid-column-start:5}[data-col-start-md="6"]{grid-column-start:6}[data-col-start-md="7"]{grid-column-start:7}[data-col-start-md="8"]{grid-column-start:8}[data-col-start-md="9"]{grid-column-start:9}[data-col-start-md="10"]{grid-column-start:10}[data-col-start-md="11"]{grid-column-start:11}[data-col-start-md="12"]{grid-column-start:12}}@media(min-width:1200px){[data-col-lg="1"]{grid-column-end:span 1}[data-col-lg="2"]{grid-column-end:span 2}[data-col-lg="3"]{grid-column-end:span 3}[data-col-lg="4"]{grid-column-end:span 4}[data-col-lg="5"]{grid-column-end:span 5}[data-col-lg="6"]{grid-column-end:span 6}[data-col-lg="7"]{grid-column-end:span 7}[data-col-lg="8"]{grid-column-end:span 8}[data-col-lg="9"]{grid-column-end:span 9}[data-col-lg="10"]{grid-column-end:span 10}[data-col-lg="11"]{grid-column-end:span 11}[data-col-lg="12"]{grid-column-end:span 12}[data-col-start-lg="1"]{grid-column-start:1}[data-col-start-lg="2"]{grid-column-start:2}[data-col-start-lg="3"]{grid-column-start:3}[data-col-start-lg="4"]{grid-column-start:4}[data-col-start-lg="5"]{grid-column-start:5}[data-col-start-lg="6"]{grid-column-start:6}[data-col-start-lg="7"]{grid-column-start:7}[data-col-start-lg="8"]{grid-column-start:8}[data-col-start-lg="9"]{grid-column-start:9}[data-col-start-lg="10"]{grid-column-start:10}[data-col-start-lg="11"]{grid-column-start:11}[data-col-start-lg="12"]{grid-column-start:12}}@media(min-width:1440px){[data-col-xl="1"]{grid-column-end:span 1}[data-col-xl="2"]{grid-column-end:span 2}[data-col-xl="3"]{grid-column-end:span 3}[data-col-xl="4"]{grid-column-end:span 4}[data-col-xl="5"]{grid-column-end:span 5}[data-col-xl="6"]{grid-column-end:span 6}[data-col-xl="7"]{grid-column-end:span 7}[data-col-xl="8"]{grid-column-end:span 8}[data-col-xl="9"]{grid-column-end:span 9}[data-col-xl="10"]{grid-column-end:span 10}[data-col-xl="11"]{grid-column-end:span 11}[data-col-xl="12"]{grid-column-end:span 12}[data-col-start-xl="1"]{grid-column-start:1}[data-col-start-xl="2"]{grid-column-start:2}[data-col-start-xl="3"]{grid-column-start:3}[data-col-start-xl="4"]{grid-column-start:4}[data-col-start-xl="5"]{grid-column-start:5}[data-col-start-xl="6"]{grid-column-start:6}[data-col-start-xl="7"]{grid-column-start:7}[data-col-start-xl="8"]{grid-column-start:8}[data-col-start-xl="9"]{grid-column-start:9}[data-col-start-xl="10"]{grid-column-start:10}[data-col-start-xl="11"]{grid-column-start:11}[data-col-start-xl="12"]{grid-column-start:12}}@media(max-width:767px){[data-col-start-lg],[data-col-start-md],[data-col-start-sm],[data-col-start-xl]{grid-column-start:1}}:root{--grid-gutter:32px;--container-sm:720px;--container-md:944px;--container-lg:1136px;--container-xl:1248px;--container-grid-mixed-width:1600px;--zindex0:0;--zindex1:100;--zindex2:200;--zindex3:300;--zindex4:400;--zindex5:500;--zindex6:600;--zindex7:700;--zindex8:800;--zindex9:900;--margin1:0.8rem;--margin2:1.6rem;--margin3:2.4rem;--margin4:3.2rem;--margin5:4rem;--margin6:4.8rem;--margin-elements:32px;--margin-components:18rem;--icon-xl:128px;--icon-lg:56px;--icon-md:48px;--icon-sm:32px;--icon-xs:24px;--input-height-xs:56px;--input-height-sm:56px;--input-height:56px;--input-height-lg:56px;--color-success:#9c3;--color-info:#6ea0c6;--color-warning:#fb7d0c;--color-danger:#ec3457;--color-disabled:#afafaf;--color-text-1:#262626;--color-text-2:#444;--white:#fff;--anthracite:#262626;--black:#000;--grey1:#e6e6e6;--grey2:#666;--grey3:#bbb;--blue1:#1c69d4;--blue2:#0653b6;--brown-grey:#979797;--color-bg-primary:#1c69d4;--color-text-1:#444;--color-text-2:#222;--color-text-3:#222;--color-text-4:#666;--color-bg-1:#ac30d3;--color-bg-2:#09263c;--color-bg-3:#9c3;--color-bg-4:#0076d9;--color-bg-5:#fbe16d;--color-bg-6:#c41772;--color-bg-7:#e6e6e6;--color-border-1:#e3e3e3;--color-black:#262626;--color-brown-grey:#8e8e8e;--color-blue-blue:#1c69d4;--color-greyish-brown:#4d4d4d;--color-very-light-pink:#d8d8d8;--color-placeholder-1:#e3e3e3;--color-accordion--hover:#f5f5f5;--color-brand:#0076d9}.steamOS,:root{--color-highlight:var(--color-bg-1)}.Windows{--color-highlight:var(--color-bg-4)}.Android{--color-highlight:var(--color-bg-3)}@font-face{font-family:Avenir;font-weight:100;src:url(/static/media/avenir-light-webfont.d196085b8931cbd397e4.woff2)}@font-face{font-family:Avenir;font-weight:300;src:url(/static/media/avenir-roman-webfont.7a1177012162742990ea.woff2)}@font-face{font-family:Avenir;font-weight:bolder;src:url(/static/media/avenir-medium-webfont.ff8afe24d18b3638bd70.woff2)}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:62.5%!important}h1,h2,h3,h4,h5,h6{font-size:inherit;margin:0;text-decoration:none;width:auto}@media(max-width:767px){html{font-size:var(--xs-adjustment)}}@media(max-width:991px){html{font-size:52%}}body{color:#444;color:var(--color-text-1);font-family:OpenSans;font-size:1.5rem;font-weight:400;letter-spacing:-.2px;line-height:140%;margin:0}@media(max-width:991px){body{font-size:1.5rem}}::selection{background:#0653b6;color:#fff}hr{margin:2.4rem 0;margin:var(--margin3) 0}p{color:#444;color:var(--color-text-1);line-height:140%;margin-bottom:2.4rem;margin-bottom:var(--margin3)}p.capitular:first-letter{float:left;font-size:6rem;margin:10px 1.5rem 1rem 0;vertical-align:bottom}.lead{font-family:Neuton;font-size:8rem}.lead,small{margin-bottom:2.4rem;margin-bottom:var(--margin3)}small{color:#666;color:var(--grey2);display:inline-block;font-size:1.2rem;line-height:1.8rem}b,strong{font-weight:700}abbr{border-bottom:1px dotted}em,i{font-style:italic}sub,sup{font-size:75%;line-height:0;position:relative;top:-.5em}sub{bottom:-.5em;top:auto}cite{font-style:italic}cite:after,cite:before{content:'"'}code{background:#000;color:#fff;display:block;font-family:Monaco;margin-bottom:.8rem;margin-bottom:var(--margin1);padding:10px}[class*=h1]{font-weight:700;margin-bottom:6rem}[class*=h1],[class*=h2]{background:none;border:0;color:#222;color:var(--color-text-2);display:block;font-family:Avenir;font-size:9.4rem;letter-spacing:-.05rem;line-height:9.4rem;padding-bottom:0}[class*=h2]{font-weight:100;margin-bottom:4.4rem}[class*=h3]{background:none;border:0;color:#222;color:var(--color-text-2);display:block;font-family:Avenir;font-size:6rem;font-weight:700;letter-spacing:-.05rem;line-height:6rem;margin-bottom:3.5rem;padding-bottom:0}[class*=h4]{color:#ac30d3;color:var(--color-highlight);font-size:2.5rem;line-height:2.5rem;margin-bottom:1rem}[class*=h4],[class*=h5]{background:none;border:0;display:block;font-family:Avenir;font-weight:300;letter-spacing:-.05rem;padding-bottom:0}[class*=h5]{font-size:2rem;line-height:2.7rem;margin-bottom:2rem}[class*=h5],[class*=h6]{color:#222;color:var(--color-text-2)}[class*=h6]{background:none;border:0;display:block;font-family:Avenir;font-size:1.5rem;font-weight:300;letter-spacing:-.05rem;line-height:1.5rem;margin-bottom:1.5rem;padding-bottom:0}hgroup{margin-bottom:100px}hgroup .h1,hgroup .h2{margin-bottom:0}html>body{color:#444;color:var(--color-text-1);font-family:Avenir;font-size:1.5rem;font-weight:400;letter-spacing:-.2px;line-height:140%;margin:0}@media(max-width:767px){.h1,.h2,.h3{-webkit-text-stroke-width:none;-webkit-text-stroke-color:#0000;font-size:6rem;line-height:6rem}.h3{font-size:4rem;line-height:4rem}}.lead{font-family:Avenir;font-size:2.2rem;font-weight:100;letter-spacing:0;margin-bottom:4rem;margin-bottom:var(--margin5)} -/*# sourceMappingURL=main.68d51e4f.css.map*/ \ No newline at end of file +button{background:none;border:0;color:inherit;cursor:pointer;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;padding:0}.form .form__addon,[class*=btn-]{-webkit-appearance:none;cursor:pointer;margin:0;text-decoration:none;vertical-align:middle;vertical-align:top}.form .form__addon::hover,[class*=btn-]::hover{text-decoration:none}.form .form__addon:focus,[class*=btn-]:focus{outline:none}.btn--center.btn--center{display:block;margin-left:auto;margin-right:auto}.btn--block{display:block;text-align:center;width:100%}@media(min-width:320px)and (max-width:767px){.btn--block--xs{display:block;padding-left:0;padding-right:0;text-align:center;width:100%}}@media(min-width:768px)and (max-width:991px){.btn--block--sm{display:block;padding-left:0;padding-right:0;text-align:center;width:100%}}@media(min-width:var(--screen-md ))and (max-width:var(--screen-md-max )){.btn--block--md{display:block;padding-left:0;padding-right:0;text-align:center;width:100%}}@media(min-width:var(--screen-lg ))and (max-width:var(--screen-lg-max )){.btn--block--lg{display:block;padding-left:0;padding-right:0;text-align:center;width:100%}}@media(min-width:var(--screen-xl )){.btn--block--xl{display:block;padding-left:0;padding-right:0;text-align:center;width:100%}}button[class*=link--]{background:none;border:none;cursor:pointer;font-size:inherit;padding:0}.btn-group{display:inline-flex}.btn-group input{display:none}.btn-group [class*=btn-]{border-radius:0;margin:0}.btn-simple{align-items:center;border-radius:var(--btn-simple-border-radius);display:inline-block;font-size:var(--btn-simple-text-size);font-weight:700;line-height:var(--btn-simple-text-size);margin-bottom:32px;margin-bottom:var(--margin-elements);padding:var(--btn-simple-padding);transition:var(--btn-simple-transition-out)}.form .btn-simple{height:56px;height:var(--input-height)}.form .btn-simple--xs{height:56px;height:var(--input-height-xs)}.form .btn-simple--sm{height:56px;height:var(--input-height-sm)}.form .btn-simple--lg{height:56px;height:var(--input-height-lg)}.btn-simple:focus,.btn-simple:hover{transition:var(--btn-simple-transition-in)}@media(min-width:320px)and (max-width:991px){.btn-simple--block+.btn--block{margin-top:var(--btn-simple-mt)}}.btn-simple--xs{font-size:var(--btn-simple-text-size-xs);padding:var(--btn-simple-padding-xs)}.btn-simple--sm{font-size:var(--btn-simple-text-size-sm);padding:var(--btn-simple-padding-sm)}.btn-simple--lg{font-size:var(--btn-simple-text-size-lg);padding:var(--btn-simple-padding-lg)}a.btn-simple,a.btn-simple--lg,a.btn-simple--sm,a.btn-simple--xs,label.btn-simple,label.btn-simple--lg,label.btn-simple--sm,label.btn-simple--xs{line-height:1}.btn-group{justify-content:center;margin-bottom:2.4rem;margin-bottom:var(--margin3)}@media(max-width:991px){.btn-group{flex-wrap:wrap}}.btn-group [class*=btn]{margin-right:var(--btn-group-separation)}@media(max-width:991px){.btn-group [class*=btn]{margin:0 0 32px;margin-bottom:var(--margin-elements);width:100%}}.btn-group [class*=btn]:first-of-type{border-bottom-left-radius:var(--btn-simple-border-radius);border-top-left-radius:var(--btn-simple-border-radius)}.btn-group [class*=btn]:last-child{border-bottom-right-radius:var(--btn-simple-border-radius);border-top-right-radius:var(--btn-simple-border-radius);margin-right:0}.btn--block+.btn--block{margin-top:var(--btn-simple-mt)}.btn--block{padding-left:0;padding-right:0}.btn-simple{--btn-simple-padding:21px 48px;--btn-simple-text-size:14px;--btn-simple-mt:10px;--btn-simple-border-radius:0px;--btn-simple-transition-in:0.2s;--btn-simple-transition-out:0.2s;--btn-simple-padding-xs:4px 5px;--btn-simple-text-size-xs:10px;--btn-simple-padding-sm:6px 10px;--btn-simple-text-size-sm:12px;--btn-simple-padding-lg:10px 18px;--btn-simple-text-size-lg:18px;--btn-group-separation:18px}.btn-simple--1{fill:#fff;background:#ac30d3;background:var(--color-highlight);color:#fff}.btn-simple--1:focus,.btn-simple--1:hover{fill:#fff;background:#444;color:#fff}.btn-simple--1.is-disabled,.btn-simple--1[disabled]{fill:#fff;background:#afafaf;background:var(--color-disabled);color:#fff}.btn-group input+label.btn-simple--1{background:#ac30d3;background:var(--color-highlight)}.btn-group input:checked+label.btn-simple--1{background:#444}.btn-simple--2{fill:#fff;background:#ec3457;background:var(--color-danger);color:#fff}.btn-simple--2:focus,.btn-simple--2:hover{fill:#fff;background:#444;color:#fff}.btn-simple--2.is-disabled,.btn-simple--2[disabled]{fill:#fff;background:#afafaf;background:var(--color-disabled);color:#fff}.btn-group input+label.btn-simple--2{background:#ec3457;background:var(--color-danger)}.btn-group input:checked+label.btn-simple--2{background:#444}.btn-simple--3{fill:#fff;background:#6ea0c6;background:var(--color-info);color:#fff}.btn-simple--3:focus,.btn-simple--3:hover{fill:#fff;background:#444;color:#fff}.btn-simple--3.is-disabled,.btn-simple--3[disabled]{fill:#fff;background:#afafaf;background:var(--color-disabled);color:#fff}.btn-group input+label.btn-simple--3{background:#6ea0c6;background:var(--color-info)}.btn-group input:checked+label.btn-simple--3{background:#444}html{scroll-behavior:smooth}.btn-simple{border-radius:50px;font-family:Avenir;font-size:18px}.big-blob{background:red;-webkit-clip-path:url(#svgClipPathID);clip-path:url(#svgClipPathID);width:100vw}@media(max-width:767px){.big-blob{display:none}}#big-blob-svg,#small-blobs-svg,.svg{position:absolute}.svg{height:0;width:0}.hero{min-height:60vh}.big-blob{animation:move 10s ease-in-out infinite;background:linear-gradient(180deg,#ac30d3,#09263c);background:linear-gradient(to bottom,var(--color-highlight),var(--color-bg-2));background-size:cover;-webkit-clip-path:url(#big-blob);clip-path:url(#big-blob);height:80%;pointer-events:none;position:absolute;right:0;top:0;translate:20% -20%;width:70vw;z-index:-1}@media(max-width:767px){.big-blob{width:150vw}}@keyframes move{0%{transform:scale(1) translate(100px 100px)}38%{transform:scaleY(1.2) rotate(30deg)}40%{transform:scaleY(1.2) rotate(30deg)}78%{transform:scale(1.2) rotate(-18deg)}80%{transform:scale(1.2) rotate(-15deg)}to{transform:scale(1)}}.is-highlight{-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#fff;color:#ac30d3;color:var(--color-highlight)}@media(max-width:767px){.is-highlight{-webkit-text-stroke-width:0}}.header{margin-bottom:50px;padding:12px 0;position:static;top:0;width:100%;z-index:9}.header__logo{width:250px}.header__inner,.header__links{align-items:center;display:flex;justify-content:space-between}.header__links{flex-basis:20%}.header__link{color:#fff;font-weight:700}.hero__item{display:flex;height:444px;position:relative;translate:10% 0}.hero__item button{cursor:pointer}.hero__item svg{fill:#fff;stroke:#09263c;stroke:var(--color-bg-2);height:100px;transform:rotate(180deg);transition:.5s;width:100px}.hero .iframe-container{left:338px;position:absolute;top:60px}body{font-family:Avenir;overflow-x:hidden}.img,.picture{max-width:100%;width:100%}.container--center{text-align:center}.rfm-marquee img{height:80px;margin-right:50px}.path-0{animation:pathAnim-0 30s;animation-iteration-count:infinite;animation-timing-function:linear}@keyframes pathAnim-0{0%{d:path("M 0,400 L 0,0 C 70.08656818962555,31.90656131913432 140.1731363792511,63.81312263826864 206,94 C 271.8268636207489,124.18687736173136 333.3940226726211,152.65407076605976 395,174 C 456.6059773273789,195.34592923394024 518.2507729302645,209.57059429749228 597,216 C 675.7492270697355,222.42940570250772 771.6028856063207,221.06355204397113 849,206 C 926.3971143936793,190.93644795602887 985.3376846444523,162.17519752662318 1052,166 C 1118.6623153555477,169.82480247337682 1193.0463758158708,206.23565784953627 1259,184 C 1324.9536241841292,161.76434215046373 1382.4768120920646,80.88217107523187 1440,0 L 1440,400 L 0,400 Z")}25%{d:path("M 0,400 L 0,0 C 72.55238749570594,27.38234283751288 145.1047749914119,54.76468567502576 212,96 C 278.8952250085881,137.23531432497424 340.13328753005845,192.32360013740984 406,186 C 471.86671246994155,179.67639986259016 542.3620748883546,111.94091377533492 605,100 C 667.6379251116454,88.05908622466508 722.4184129165235,131.91274476125042 787,166 C 851.5815870834765,200.08725523874958 925.9642734455515,224.40810717966335 996,216 C 1066.0357265544485,207.59189282033665 1131.724493301271,166.45482652009616 1205,125 C 1278.275506698729,83.54517347990382 1359.1377533493646,41.77258673995191 1440,0 L 1440,400 L 0,400 Z")}50%{d:path("M 0,400 L 0,0 C 57.13500515286843,100.95499828237719 114.27001030573686,201.90999656475438 177,212 C 239.72998969426314,222.09000343524562 308.054963929921,141.31501202335966 391,121 C 473.945036070079,100.68498797664034 571.510133974579,140.82995534180696 649,138 C 726.489866025421,135.17004465819304 783.9045001717625,89.36516660941255 847,89 C 910.0954998282375,88.63483339058745 978.8718653383714,133.7093782205428 1042,172 C 1105.1281346616286,210.2906217794572 1162.608038474751,241.79732050841633 1228,212 C 1293.391961525249,182.20267949158367 1366.6959807626245,91.10133974579183 1440,0 L 1440,400 L 0,400 Z")}75%{d:path("M 0,400 L 0,0 C 83.37890759189281,60.32566128478187 166.75781518378562,120.65132256956375 235,125 C 303.2421848162144,129.34867743043625 356.34764685675026,77.72037100652695 416,85 C 475.65235314324974,92.27962899347305 541.8515973892132,158.4671934043284 605,177 C 668.1484026107868,195.5328065956716 728.2459635863964,166.41085537615942 808,145 C 887.7540364136036,123.5891446238406 987.1645482652009,109.88938509103403 1063,138 C 1138.835451734799,166.11061490896597 1191.0958433527999,236.03160425970455 1250,220 C 1308.9041566472001,203.96839574029545 1374.4520783236,101.98419787014772 1440,0 L 1440,400 L 0,400 Z")}to{d:path("M 0,400 L 0,0 C 70.08656818962555,31.90656131913432 140.1731363792511,63.81312263826864 206,94 C 271.8268636207489,124.18687736173136 333.3940226726211,152.65407076605976 395,174 C 456.6059773273789,195.34592923394024 518.2507729302645,209.57059429749228 597,216 C 675.7492270697355,222.42940570250772 771.6028856063207,221.06355204397113 849,206 C 926.3971143936793,190.93644795602887 985.3376846444523,162.17519752662318 1052,166 C 1118.6623153555477,169.82480247337682 1193.0463758158708,206.23565784953627 1259,184 C 1324.9536241841292,161.76434215046373 1382.4768120920646,80.88217107523187 1440,0 L 1440,400 L 0,400 Z")}}.path-1{animation:pathAnim-1 40s;animation-iteration-count:infinite;animation-timing-function:linear}@keyframes pathAnim-1{0%{d:path("M 0,400 L 0,0 C 109.7129186602871,13.559808612440193 219.4258373205742,27.119617224880386 329,80 C 438.5741626794258,132.8803827751196 548.0095693779905,225.08133971291866 620,223 C 691.9904306220095,220.91866028708134 726.5358851674641,124.55502392344499 822,121 C 917.4641148325359,117.44497607655501 1073.8468899521529,206.69856459330143 1187,202 C 1300.1531100478471,197.30143540669857 1370.0765550239234,98.65071770334929 1440,0 L 1440,400 L 0,400 Z")}25%{d:path("M 0,400 L 0,0 C 78.11483253588514,42.44019138755981 156.22966507177028,84.88038277511961 244,109 C 331.7703349282297,133.1196172248804 429.1961722488039,138.91866028708134 525,159 C 620.8038277511961,179.08133971291866 714.9856459330142,213.44497607655504 810,198 C 905.0143540669858,182.55502392344496 1000.8612440191389,117.30143540669856 1106,76 C 1211.138755980861,34.69856459330144 1325.5693779904304,17.34928229665072 1440,0 L 1440,400 L 0,400 Z")}50%{d:path("M 0,400 L 0,0 C 116.71770334928232,56.631578947368425 233.43540669856463,113.26315789473685 330,131 C 426.56459330143537,148.73684210526315 502.97607655502384,127.57894736842105 598,116 C 693.0239234449762,104.42105263157895 806.6602870813398,102.42105263157895 891,101 C 975.3397129186602,99.57894736842105 1030.3827751196172,98.73684210526316 1117,82 C 1203.6172248803828,65.26315789473684 1321.8086124401914,32.63157894736842 1440,0 L 1440,400 L 0,400 Z")}75%{d:path("M 0,400 L 0,0 C 66.13397129186606,79.11004784688996 132.26794258373212,158.2200956937799 247,185 C 361.7320574162679,211.7799043062201 525.0622009569377,186.22966507177034 622,153 C 718.9377990430623,119.77033492822967 749.4832535885168,78.86124401913877 824,92 C 898.5167464114832,105.13875598086123 1017.0047846889952,172.32535885167465 1127,166 C 1236.9952153110048,159.67464114832535 1338.4976076555024,79.83732057416267 1440,0 L 1440,400 L 0,400 Z")}to{d:path("M 0,400 L 0,0 C 109.7129186602871,13.559808612440193 219.4258373205742,27.119617224880386 329,80 C 438.5741626794258,132.8803827751196 548.0095693779905,225.08133971291866 620,223 C 691.9904306220095,220.91866028708134 726.5358851674641,124.55502392344499 822,121 C 917.4641148325359,117.44497607655501 1073.8468899521529,206.69856459330143 1187,202 C 1300.1531100478471,197.30143540669857 1370.0765550239234,98.65071770334929 1440,0 L 1440,400 L 0,400 Z")}}.iframe-container{margin-bottom:20px;overflow:hidden;padding-top:56.25%;position:relative;width:100%}.iframe-container iframe{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.showcase .showcase__video{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}@media(min-width:320px){.showcase .showcase__video{height:50%;width:40%}}@media(min-width:768px){.showcase .showcase__video{height:190px;width:340px}}@media(min-width:992px){.showcase .showcase__video{height:260px;width:460px}}@media(min-width:1200px){.showcase .showcase__video{height:300px;width:550px}}@media(min-width:1440px){.showcase .showcase__video{height:340px;width:600px}}.blobs{min-height:600px;position:relative}.bottom-bloby,.top-bloby{animation:height 19s ease-in-out infinite;background:#ac30d3;background:var(--color-highlight);border-radius:0 0 100% 100%;height:150px;left:0;position:absolute;top:0;width:100%}.bottom-bloby{border-radius:100% 100% 0 0;bottom:0;top:auto}.bloby{fill:#ac30d3;fill:var(--color-highlight);animation:movy 20s ease-in-out infinite;left:0;position:absolute;top:0;transform:translate(5vw,-12vh);transform-origin:50% 50%;width:7vw;z-index:-1}.bloby:first-child{animation:movy 18s ease-in-out infinite;left:5%;width:12vw}.bloby:nth-child(2){animation:movy2 17s ease-in-out infinite;left:25%;width:22vw}.bloby:nth-child(3){animation:movy3 14s ease-in-out infinite;left:35%;width:17vw}.bloby:nth-child(4){animation:movy2 20s ease-in-out infinite;left:45%;width:16vw}.bloby:nth-child(5){animation:movy 16s ease-in-out infinite;left:55%;width:11vw}.bloby:nth-child(6){animation:movy3 12s ease-in-out infinite;left:65%;width:7vw}.bloby:nth-child(7){animation:movy2 18s ease-in-out infinite;left:75%;width:5vw}.bloby:nth-child(8){animation:movy 20s ease-in-out infinite;left:85%;width:17vw}.bloby:nth-child(9){animation:movy3 11s ease-in-out infinite;left:95%;width:16vw}@keyframes height{0%{height:10%}58%{height:15px}to{height:10%}}@keyframes movy{0%{transform:scale(1) translateY(30vw) rotate(12deg)}38%{transform:scale(1.4) translateY(-10vw) rotate(4deg)}58%{transform:scale(1) translateY(-10vw) rotate(24deg)}80%{transform:scale(1.4) translateY(-10vw) rotate(32deg)}to{transform:scale(1) translateY(30vw) rotate(12deg)}}@keyframes movy2{0%{transform:scale(1) translateY(30vw) rotate(12deg)}38%{transform:scale(1.4) translateY(-10vw) rotate(19deg)}58%{transform:scale(1) translateY(-10vw) rotate(2deg)}80%{transform:scale(1.4) translateY(-10vw) rotate(25deg)}to{transform:scale(1) translateY(30vw) rotate(12deg)}}@keyframes movy3{0%{transform:scale(1) translateY(30vw) rotate(12deg)}38%{transform:scale(1.4) translateY(-10vw) rotate(5deg)}58%{transform:scale(1) translateY(-10vw) rotate(2deg)}80%{transform:scale(1.4) translateY(-10vw) rotate(12deg)}to{transform:scale(1) translateY(30vw) rotate(12deg)}}.download-links{display:flex;justify-content:space-around;margin-bottom:70px}@media(max-width:767px){.download-links{display:block}}.download-links a{margin-bottom:12px}.download-links img{width:100px}.download-links li{display:flex;flex-direction:column-reverse;text-align:center}@media(max-width:767px){.download-links li{margin-bottom:64px}}svg.logo .path{stroke-dasharray:1320;stroke-dashoffset:0;fill:#fff;animation:dash 60s linear infinite alternate}@keyframes dash{0%{stroke-dashoffset:1320;fill:#fff}3%{stroke-dashoffset:0;stroke-dasharray:1320;fill:#fff}5%{stroke-dashoffset:0;stroke-dasharray:1320;fill:inherit}10%{stroke-dashoffset:0;stroke-dasharray:1320;fill:inherit}to{stroke-dashoffset:0;stroke-dasharray:1320;fill:inherit}}.text-line{stroke-dasharray:500;stroke-dashoffset:500;animation:dashfont 5s linear forwards,filling 5s ease-in forwards;font-size:80px}@keyframes dashfont{to{stroke-dashoffset:0}}@keyframes filling{0%,90%{fill:#bac736;fill-opacity:0}to{fill:#bac736;fill-opacity:1}}.btn-switch{display:block;position:relative;-webkit-user-select:none;user-select:none}.btn-switch__checkbox{display:none}.btn-switch__label{cursor:pointer;display:block;overflow:hidden;padding:0;text-indent:-999em}.btn-switch__label:before{bottom:0;content:"";display:block;margin:0;position:absolute;top:0}.btn-switch__checkbox:checked+.btn-switch__label:before{right:0}.btn-switch{width:var(--btn-switch-width)}.btn-switch label.btn-switch__label{background-color:var(--btn-switch-bg-inactive);border:var(--btn-switch-bg-inactive-border)!important;border-radius:var(--btn-switch-height);height:var(--btn-switch-height);line-height:var(--btn-switch-height);transition:var(--btn-switch-transition-in)}.btn-switch__label:before{background:var(--btn-switch-knob-bg);border:var(--btn-switch-knob-border-active);border-radius:var(--btn-switch-height);box-shadow:0 3px 3px 0 #0000000d,0 2px 2px 0 #0000001a,0 3px 1px 0 #0000000d;height:var(--btn-switch-knob-width);right:calc(var(--btn-switch-width) - var(--btn-switch-height) + var(--btn-switch-knob-top));top:var(--btn-switch-knob-top);transition:var(--btn-switch-transition-out);width:var(--btn-switch-knob-width)}.btn-switch__checkbox:checked+.btn-switch__label:before{right:var(--btn-switch-knob-top)}.btn-switch__checkbox:checked+.btn-switch__label{background-color:var(--btn-switch-bg-active)}.btn-switch__checkbox:checked+.btn-switch__label,.btn-switch__checkbox:checked+.btn-switch__label:before{border-color:var(--btn-switch-bg-active);border:var(--btn-switch-border !important)}.btn-switch{--btn-switch-height:30px;--btn-switch-width:calc(var(--btn-switch-height)*2);--btn-switch-knob-width:calc(var(--btn-switch-height) - 2px);--btn-switch-knob-top:0px;--btn-switch-knob-bg:#fff;--btn-switch-knob-border-active:1px solid var(--color-border-1);--btn-switch-border:1px solid var(--color-success);--btn-switch-transition-in:background-color 0.3s ease-in;--btn-switch-transition-out:all 0.3s ease-in 0s;--btn-switch-bg-active:var(--color-success);--btn-switch-bg-inactive:#fff;--btn-switch-bg-inactive-border:1px solid var(--color-border-1)}svg.icon.icon.icon--xs{height:var(--icon-xs);width:var(--icon-xs)}svg.icon.icon.icon--sm{height:var(--icon-sm);width:var(--icon-sm)}svg.icon.icon.icon--md{height:var(--icon-md);width:var(--icon-md)}svg.icon.icon.icon--lg{height:var(--icon-lg);width:var(--icon-lg)}svg.icon.icon.icon--xl{height:var(--icon-xl);width:var(--icon-xl)}[class*=link-]{display:inline-table}button[class*=link-]{background:none;border-left:none;border-right:none;font-size:inherit;margin:0}a{color:inherit;text-decoration:none}.link-simple:after{content:"";display:block;opacity:0}.link-simple.active:after,.link-simple:active:after,.link-simple:hover:after{content:"";display:block;opacity:1}.link-simple{padding-bottom:3px;text-decoration:none}.link-simple,.link-simple:after{transition:var(--link-simple-transition)}.link-simple:after{background:currentcolor;display:none!important;height:2px;width:1%}.link-simple.active:after,.link-simple:active:after,.link-simple:hover:after{height:2px;width:100%}.link-simple{--link-simple-transition:0.5s}.link-simple--1{color:var(--blue1);font-weight:700}.link-simple--1:hover{color:var(--blue2)}.link-simple--1:disabled{color:var(--color-disabled)}.embed-responsive{display:block;height:0;overflow:hidden;padding:0 0 56.25%;position:relative}.embed-responsive__item{border:0;bottom:0;height:100%;left:0;position:absolute;top:0;width:100%}svg.icon.icon.icon{vertical-align:middle}.list--icons--xs>* svg.icon.icon,svg.icon.icon.icon--xs{height:24px;height:var(--icon-xs);width:24px;width:var(--icon-xs)}.list--icons--sm>* svg.icon.icon,svg.icon.icon.icon--sm{height:32px;height:var(--icon-sm);width:32px;width:var(--icon-sm)}.list--icons--md>* svg.icon.icon,svg.icon.icon.icon--md{height:48px;height:var(--icon-md);width:48px;width:var(--icon-md)}.list--icons--lg>* svg.icon.icon,svg.icon.icon.icon--lg{height:56px;height:var(--icon-lg);width:56px;width:var(--icon-lg)}.list--icons--xl>* svg.icon.icon,svg.icon.icon.icon--xl{height:128px;height:var(--icon-xl);width:128px;width:var(--icon-xl)}svg.icon{vertical-align:middle}.list li{list-style-type:none}.list li:last-child{margin-bottom:0}.list--bullets li{position:relative}.list--bullets li:before{content:"";position:absolute}.list--icons>*{display:table;position:relative}.list--icons--xl>*{min-height:128px;min-height:var(--icon-xl);padding-left:138px;padding-left:calc(var(--icon-xl) + 10px)}.list--icons--lg>*{min-height:56px;min-height:var(--icon-lg);padding-left:66px;padding-left:calc(var(--icon-lg) + 10px)}.list--icons--md>*{min-height:48px;min-height:var(--icon-md);padding-left:58px;padding-left:calc(var(--icon-md) + 10px)}.list--icons--sm>*{min-height:32px;min-height:var(--icon-sm);padding-left:42px;padding-left:calc(var(--icon-sm) + 10px)}.list--icons--xs>*{min-height:24px;min-height:var(--icon-xs);padding-left:34px;padding-left:calc(var(--icon-xs) + 10px)}.list--icons>*>div.text{display:table-cell;vertical-align:middle}.list--icons .icon{left:0;position:absolute;text-align:center;top:0}.list--inline,.list--inline>li{display:inline-block}.list--inline>li{margin-bottom:0}.desc-list--horizontal dt{clear:left;float:left;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}@media(max-width:767px){.desc-list--horizontal dt{float:none;text-align:left}}ol.list{counter-reset:section}ol.list li{list-style-type:none;position:relative}ol.list li:before{content:counter(section);counter-increment:section;display:inline-block;position:absolute}.list{margin-bottom:var(--list-mb)}.list li{margin-bottom:var(--list-li-mb)}.list--bullets li{padding-left:calc(var(--list-bullets-size)*2)}.list--bullets li:before{background:var(--list-bullets-color);border-radius:100%;height:var(--list-bullets-size);left:0;top:var(--list-bullets-top);width:var(--list-bullets-size)}.desc-list{margin-bottom:var(--desc-list-mb)}.desc-list dt{font-weight:700;margin-bottom:var(--desc-list-dt-mb)}.desc-list dd{margin-bottom:var(--desc-list-dd-mb)}.desc-list--horizontal dt{width:var(--desc-list-dt-width)}@media(max-width:767px){.desc-list--horizontal dt{width:100%}}.desc-list--horizontal dd{margin-left:calc(var(--desc-list-dt-width) + 20px)}@media(max-width:767px){.desc-list--horizontal dd{margin-left:0}}ol.list{padding-left:var(--ol-padding)}ol.list li:before{left:-var(--ol-padding)}.list{--list-mb:var(--margin3);--list-li-mb:var(--margin2);--list-bullets-size:6px;--list-bullets-top:5px;--list-bullets-color:var(--color-bg-primary);--desc-list-mb:var(--margin1);--desc-list-dt-mb:5px;--desc-list-dd-mb:var(--margin1);--desc-list-dt-width:160px;--ol-padding:0px}ol.list li:before{margin-right:10px;position:static}ol.list{margin-bottom:0;text-align:center}.loader-circle{animation:load8 1s linear infinite;position:relative;text-indent:-9999em;transform:translateZ(0)}.loader-circle,.loader-circle:after{border-radius:50%}@keyframes load8{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loader-circle{border:var(--loader-circle-border) solid #fff3;border-left:var(--loader-circle-border) solid var(--loader-circle-color);font-size:10px;margin-bottom:var(--loader-circle-mb)}.loader-circle,.loader-circle:after{height:var(--loader-circle-diameter);width:var(--loader-circle-diameter)}.loader-circle{--loader-circle-diameter:10rem;--loader-circle-border:1.1rem;--loader-circle-color:var(--color-danger);--loader-circle-mb:var(--margin3)}.progress{appearance:none;-webkit-appearance:none;-moz-appearance:none;border:none;width:100%}.progress span{display:block;height:100%;text-align:center}.progress{height:var(--progress-height);margin-bottom:var(--progress-mb);transition:var(--progress-transition)}.progress span{font-size:var(--progress-font-size);line-height:var(--progress-height)}.progress{--progress-height:20px;--progress-mb:var(--margin3);--progress-bg:var(--color-border-1);--progress-color:#fff;--progress-font-size:12px;--progress-transition:width 0.6s ease}.progress--success{background-color:var(--progress-bg)}.progress--success::-webkit-progress-bar{background-color:var(--progress-bg)}.progress--success::-webkit-progress-value{background-color:var(--color-success);-webkit-transition:width 1s;transition:width 1s}.progress--success::-moz-progress-bar{background-color:var(--color-success)}.progress--success span{background-color:var(--color-success);color:#fff}.form--simple .form__group{position:relative}.form--simple .form__group--success .form__group__help{color:#9c3;color:var(--color-success)}.form--simple .form__group--info .form__group__help{color:#6ea0c6;color:var(--color-info)}.form--simple .form__group--warning .form__group__help{color:#fb7d0c;color:var(--color-warning)}.form--simple .form__group--danger .form__group__help{color:#ec3457;color:var(--color-danger)}.form--simple select{-webkit-appearance:none;appearance:none;padding-right:20px}.form--simple select:focus{background:var(--form-control-bg-hover)}.form--simple{margin-bottom:var(--form-mb)}.form--simple label{margin-bottom:var(--form-label-mb)}.form--simple input+label{margin-bottom:0}.form--simple .form__group>.form__addon{border-radius:var(--form-control-border-radius);margin-bottom:0;padding:0 20px}.form--simple .form__group .form__help{float:right;font-size:var(--form-help-text-size);padding:var(--form-help-padding)}.form--simple .form__group--success input,.form--simple .form__group--success label,.form--simple .form__group--success select,.form--simple .form__group--success textarea{border-color:#9c3;border-color:var(--color-success);color:#9c3;color:var(--color-success)}.form--simple .form__group--success .form__error,.form--simple .form__group--success .form__group__help{color:#9c3;color:var(--color-success)}.form--simple .form__group--success svg{fill:#9c3;fill:var(--color-success)}.form--simple .form__group--info input,.form--simple .form__group--info label,.form--simple .form__group--info select,.form--simple .form__group--info textarea{background:#6ea0c6;background:var(--color-info);border-color:#6ea0c6;border-color:var(--color-info)}.form--simple .form__group--info .form__error,.form--simple .form__group--info .form__group__help{color:#6ea0c6;color:var(--color-info)}.form--simple .form__group--info svg{fill:#6ea0c6;fill:var(--color-info)}.form--simple .form__group--warning input,.form--simple .form__group--warning label,.form--simple .form__group--warning select,.form--simple .form__group--warning textarea{border-color:#fb7d0c;border-color:var(--color-warning);color:#fb7d0c;color:var(--color-warning)}.form--simple .form__group--warning .form__error,.form--simple .form__group--warning .form__group__help{color:#fb7d0c;color:var(--color-warning)}.form--simple .form__group--warning svg{fill:#fb7d0c;fill:var(--color-warning)}.form--simple .form__group--danger input,.form--simple .form__group--danger label,.form--simple .form__group--danger select,.form--simple .form__group--danger textarea{border-color:#ec3457;border-color:var(--color-danger);color:#ec3457;color:var(--color-danger)}.form--simple .form__group--danger .form__error,.form--simple .form__group--danger .form__group__help{color:#ec3457;color:var(--color-danger)}.form--simple .form__group--danger svg{fill:#ec3457;fill:var(--color-danger)}.form--simple .form__group .form__icon{top:var(--form-icon-top)}.form--simple .form__group .form__icon svg{height:var(--form-icon-size);right:var(--form-icon-right);width:var(--form-icon-size)}.form--simple .form__control,.form--simple select,.form--simple textarea{background:var(--form-control-bg);border:var(--form-control-border);border-radius:var(--form-control-border-radius);box-shadow:var(--form-control-box-shadow);padding:var(--form-control-padding)}.form--simple .form__control:focus,.form--simple select:focus,.form--simple textarea:focus{background-color:var(--form-control-bg-hover);border:var(--form-control-border-hover)}.form--simple select{-moz-appearance:none;background:var(--form-select-caret) no-repeat;background-color:var(--form-control-bg);background-position:var(--form-select-caret-position);background-size:100% 100%;background-size:var(--form-select-caret-size) var(--form-select-caret-size);padding-right:40px}.form--simple select:focus{background:var(--form-select-caret) no-repeat;background-color:var(--form-control-bg-hover);background-position:var(--form-select-caret-position);background-size:100% 100%;background-size:var(--form-select-caret-size) var(--form-select-caret-size);border:var(--form-control-border-hover)}.form--simple{--form-control-border:1px solid var(--brown-grey);--form-mb:var(--margin3);--form-label-mb:var(--margin1);--form-control-border-radius:0;--form-control-padding:4px 10px;--form-control-box-shadow:none;--form-control-bg:#fff;--form-control-border-hover:1px solid var(--blue1);--form-control-bg-hover:#fff;--form-help-padding:12px 0;--form-help-text-size:12px;--form-icon-size:32px;--form-icon-right:10px;--form-icon-top:25px;--form-select-caret:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxMCI+PHBhdGggZD0iTS4wNTIgMS44OCAyLjAxIDBsNS44NzUgNS42NDJMMTMuNzYuMDAybDEuOTU4IDEuODgtNy44MzMgNy41MnoiIGZpbGw9IiM2NjYiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==);--form-select-caret-size:16px;--form-select-caret-position:right 12px center}.form__group>.radio-simple{cursor:pointer;display:inline-block;-webkit-user-select:none;user-select:none}.form__group>.radio-simple input{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.form__group>.radio-simple label{cursor:pointer;pointer-events:all;position:relative!important}.form__group>.radio-simple label:after,.form__group>.radio-simple label:before{box-sizing:border-box;content:"";display:inline-block;position:absolute}.form__group>.radio-simple label:after{opacity:0}.form__group>.radio-simple input:checked+label:after{opacity:1}.form__group>.radio-simple+.radio-simple{margin-top:.8rem;margin-top:var(--margin1)}.form__group>.radio-simple input:focus+label:before{border:var(--radio-simple-fosus)}.form__group>.radio-simple label{clip:rect(0,0,0,0);border:auto;height:auto;line-height:var(--radio-simple-size);margin:auto;overflow:hidden;padding:auto;position:relative;width:auto}.form__group>.radio-simple label:before{border:var(--radio-simple-border);border-radius:100%;height:var(--radio-simple-size);left:0;width:var(--radio-simple-size)}.form__group>.radio-simple label:after{background:var(--radio-simple-inner-bg);border-radius:100%;height:2px;left:2;left:var(--radio-simple-size/2);top:2;top:var(--radio-simple-size/2);transition:var(--radio-simple-inner-transition-uncheck);width:2px}.form__group>.radio-simple input:checked+label:after{background:var(--radio-simple-inner-bg);border-radius:100%;height:var(--radio-simple-inner-width);left:var(--radio-simple-inner-left);top:var(--radio-simple-inner-left);transform-origin:center;transition:var(--radio-simple-inner-transition-check);width:var(--radio-simple-inner-width)}.radio-simple{--radio-simple-size:16px;--radio-simple-size-xs:10px;--radio-simple-size-sm:15px;--radio-simple-size-lg:30px;--radio-simple-border:1px solid var(--grey1);--radio-simple-fosus:1px solid var(--grey1);--radio-simple-inner-width:8px;--radio-simple-inner-left:4px;--radio-simple-inner-top:4px;--radio-simple-inner-bg:var(--blue1);--radio-simple-inner-transition-check:all 0.2s ease-in-out;--radio-simple-inner-transition-uncheck:all 0.2s ease-in-out}.radio-simple--xs label{line-height:var(--radio-simple-size-xs);padding-left:var(--radio-simple-size-xs)var(--radio-simple-size-xs)/2}.radio-simple--xs label:before{height:var(--radio-simple-size-xs);left:0;width:var(--radio-simple-size-xs)}.radio-simple--xs label:after{left:var(--radio-simple-size-xs)/2;top:var(--radio-simple-size-xs)/2}.radio-simple--xs input:checked+label:after{height:var(--radio-simple-size-xs)-var(--radio-simple-size-xs)/4;left:var(--radio-simple-size-xs)/8;top:var(--radio-simple-size-xs)/8;width:var(--radio-simple-size-xs)-var(--radio-simple-size-xs)/4}.radio-simple--sm label{line-height:var(--radio-simple-size-sm);padding-left:var(--radio-simple-size-sm)var(--radio-simple-size-sm)/2}.radio-simple--sm label:before{height:var(--radio-simple-size-sm);left:0;width:var(--radio-simple-size-sm)}.radio-simple--sm label:after{left:var(--radio-simple-size-sm)/2;top:var(--radio-simple-size-sm)/2}.radio-simple--sm input:checked+label:after{height:var(--radio-simple-size-sm)-var(--radio-simple-size-sm)/4;left:var(--radio-simple-size-sm)/8;top:var(--radio-simple-size-sm)/8;width:var(--radio-simple-size-sm)-var(--radio-simple-size-sm)/4}.radio-simple--lg label{line-height:var(--radio-simple-size-lg);padding-left:var(--radio-simple-size-lg)var(--radio-simple-size-lg)/2}.radio-simple--lg label:before{height:var(--radio-simple-size-lg);left:0;width:var(--radio-simple-size-lg)}.radio-simple--lg label:after{left:var(--radio-simple-size-lg)/2;top:var(--radio-simple-size-lg)/2}.radio-simple--lg input:checked+label:after{height:var(--radio-simple-size-lg)-var(--radio-simple-size-lg)/4;left:var(--radio-simple-size-lg)/8;top:var(--radio-simple-size-lg)/8;width:var(--radio-simple-size-lg)-var(--radio-simple-size-lg)/4}.checkbox-simple{cursor:pointer;display:inline-block;-webkit-user-select:none;user-select:none}.checkbox-simple input{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.checkbox-simple label{cursor:pointer;position:relative}.checkbox-simple label:after,.checkbox-simple label:before{box-sizing:border-box;content:"";display:inline-block;position:absolute}.checkbox-simple label:after{border-radius:100%;opacity:0}.checkbox-simple input:checked+label:after{opacity:1}.form--inline .form__group>.checkbox-simple{display:inline-block;margin:0;vertical-align:middle}.form__group>.checkbox-simple input:focus+label:before{border:var(--checkbox-simple-focus)}.form__group>.checkbox-simple label{line-height:var(--checkbox-simple-size);padding-left:calc(var(--checkbox-simple-size) + var(--checkbox-simple-size)/2)}.form__group>.checkbox-simple label:before{border:var(--checkbox-simple-border);border-radius:0;height:var(--checkbox-simple-size);left:0;width:var(--checkbox-simple-size)}.form__group>.checkbox-simple label:after{height:1px;left:4px;top:4px;transition:var(--checkbox-simple-inner-transition-uncheck);width:1px}.form__group>.checkbox-simple input:checked+label:before{background:var(--checkbox-simple-inner-bg-check);border:var(--checkbox-simple-border-check)}.form__group>.checkbox-simple input:checked+label:after{background:var(--checkbox-simple-tick) no-repeat;background-size:100% 100%;border-radius:0;height:var(--checkbox-simple-size);left:0;top:-2px;transition:var(--checkbox-simple-inner-transition-check);width:var(--checkbox-simple-size)}.checkbox-simple--xs label{line-height:var(--checkbox-simple-size-xs);padding-left:var(--checkbox-simple-size-xs)var(--checkbox-simple-size-xs)/2}.checkbox-simple--xs label:before{height:var(--checkbox-simple-size-xs);width:var(--checkbox-simple-size-xs)}.checkbox-simple--xs label:after{left:var(--checkbox-simple-size-xs)/2;top:var(--checkbox-simple-size-xs)/2}.checkbox-simple--xs input:checked+label:after{height:var(--checkbox-simple-size-xs);width:var(--checkbox-simple-size-xs)}.checkbox-simple--sm label{line-height:var(--checkbox-simple-size-sm);padding-left:var(--checkbox-simple-size-sm)var(--checkbox-simple-size-sm)/2}.checkbox-simple--sm label:before{height:var(--checkbox-simple-size-sm);width:var(--checkbox-simple-size-sm)}.checkbox-simple--sm label:after{left:var(--checkbox-simple-size-sm)/2;top:var(--checkbox-simple-size-sm)/2}.checkbox-simple--sm input:checked+label:after{height:var(--checkbox-simple-size-sm);width:var(--checkbox-simple-size-sm)}.checkbox-simple--lg label{line-height:var(--checkbox-simple-size-lg);padding-left:var(--checkbox-simple-size-lg)var(--checkbox-simple-size-lg)/2}.checkbox-simple--lg label:before{height:var(--checkbox-simple-size-lg);width:var(--checkbox-simple-size-lg)}.checkbox-simple--lg label:after{left:var(--checkbox-simple-size-lg)/2;top:var(--checkbox-simple-size-lg)/2}.checkbox-simple--lg input:checked+label:after{height:var(--checkbox-simple-size-lg);width:var(--checkbox-simple-size-lg)}.checkbox-simple{--checkbox-simple-size:20px;--checkbox-simple-size-xs:10px;--checkbox-simple-size-sm:15px;--checkbox-simple-size-lg:30px;--checkbox-simple-border:1px solid var(--grey1);--checkbox-simple-border-check:var(--checkbox-simple-border);--checkbox-simple-focus:1px solid var(--grey1);--checkbox-simple-inner-bg:#fff;--checkbox-simple-inner-bg-check:var(--checkbox-simple-inner-bg);--checkbox-simple-inner-transition-check:opacity 0.4s ease-in-out;--checkbox-simple-inner-transition-uncheck:opacity 0.4s ease-in-out;--checkbox-simple-tick:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCI+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJtMTAuNTM2IDE2LjE5MiA2LjM2My02LjM2NGExIDEgMCAxIDEgMS40MTUgMS40MTVsLTcuMDcxIDcuMDdhMSAxIDAgMCAxLTEuNDE1IDBsLTMuNTM1LTMuNTM1YTEgMSAwIDAgMSAxLjQxNC0xLjQxNGwyLjgyOSAyLjgyOHoiIGZpbGw9ImF1dG8iLz48L3N2Zz4=)}input[type=range]{padding:0!important}input[type=range]::-webkit-slider-runnable-track{background:var(--form-slider-track-bg);border-radius:0;cursor:pointer;height:var(--form-slider-track-height);-webkit-transition:var(--form-slider-track-transition);transition:var(--form-slider-track-transition)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--form-slider-thumb-bg);border:0;border:var(--form-slider-thumb-border-size) solid var(--form-slider-thumb-border-color);border-radius:100%;box-shadow:var(--form-slider-thumb-shadow);box-sizing:border-box;cursor:pointer;height:var(--form-slider-thumb-size);margin-top:calc((var(--form-slider-track-height))/2 - var(--form-slider-thumb-size)/2);max-height:var(--form-slider-thumb-size);max-width:var(--form-slider-thumb-size);width:var(--form-slider-thumb-size)}input[type=range]:focus::-webkit-slider-runnable-track{background:var(--form-slider-track-bg-hover)}input[type=range]::-moz-range-track{background:var(--form-slider-track-bg);border-radius:0;cursor:pointer;height:var(--form-slider-track-height);-moz-transition:var(--form-slider-track-transition);transition:var(--form-slider-track-transition)}input[type=range]::-moz-range-thumb{-webkit-appearance:none;background:var(--form-slider-thumb-bg);border:0;border:var(--form-slider-thumb-border-size) solid var(--form-slider-thumb-border-color);border-radius:100%;box-shadow:var(--form-slider-thumb-shadow);box-sizing:border-box;cursor:pointer;height:var(--form-slider-thumb-size);margin-top:calc((var(--form-slider-track-height))/2 - var(--form-slider-thumb-size)/2);max-height:var(--form-slider-thumb-size);max-width:var(--form-slider-thumb-size);width:var(--form-slider-thumb-size)}input[type=range]::-ms-track{background:var(--form-slider-track-bg);border-radius:0;cursor:pointer;height:var(--form-slider-track-height);-ms-transition:var(--form-slider-track-transition);transition:var(--form-slider-track-transition)}input[type=range]::-ms-thumb{-webkit-appearance:none;background:var(--form-slider-thumb-bg);border:0;border:var(--form-slider-thumb-border-size) solid var(--form-slider-thumb-border-color);border-radius:100%;box-shadow:var(--form-slider-thumb-shadow);box-sizing:border-box;cursor:pointer;height:var(--form-slider-thumb-size);margin-top:calc((var(--form-slider-track-height))/2 - var(--form-slider-thumb-size)/2);max-height:var(--form-slider-thumb-size);max-width:var(--form-slider-thumb-size);width:var(--form-slider-thumb-size)}input[type=range]{--form-slider-track-height:10px;--form-slider-track-bg:var(--grey3);--form-slider-track-bg-hover:var(--grey3);--form-slider-track-border-radius:0;--form-slider-track-transition:all 0.2s ease;--form-slider-thumb-size:30px;--form-slider-thumb-border-size:0px;--form-slider-thumb-bg:var(--blue1);--form-slider-thumb-border-color:green;--form-slider-thumb-border-radius:100%;--form-slider-thumb-shadow:#000}.section{--color-content:var(--color-highlight)}.section--dark .section__content{padding-bottom:100px}.section--dark svg{fill:#222}.section--dark .section__content,.section--dark .section__content:before{background:#222}.section--early .section__content{padding-top:100px}.section--early .h1,.section--early .h2,.section--early .h3,.section--early .h4,.section--early li,.section--early ol,.section--early p{color:var(--color-text-2)!important}.section--early svg{fill:#fbe16d}.section--early .section__content,.section--early .section__content:before{background:var(--color-bg-5)}.section--igg .section__content{padding-top:100px}.section--igg .h1,.section--igg .h2,.section--igg .h3,.section--igg .h4,.section--igg li,.section--igg ol,.section--igg p{color:var(--white)!important}.section--igg svg{fill:#fbe16d}.section--igg .section__content,.section--igg .section__content:before{background:var(--color-bg-6)}.section__wave{fill:var(--color-content)}.section__content{background:var(--color-content);color:#fff;position:relative}.section__content:before{background:var(--color-content);content:"";display:block;height:8px;position:absolute;top:-8px;width:100%}.section .h1,.section .h2,.section .h3,.section .h4,.section p{color:#fff;text-align:center}.lamp{display:none!important;height:100vh;left:50%;min-width:100vw;top:50%;transform:translate(-50%,-50%);width:100vw;z-index:-1}.lamp,.lava{position:absolute}.lava{filter:url(#goo);height:100%;left:0;top:0;width:100%}.blob{background:var(--color-highlight);border-radius:50%;position:absolute}.blob.top{top:-3%}.blob.bottom,.blob.top{border-radius:50%;height:4%;left:0;width:100%}.blob.bottom{bottom:-3%}.blob:first-child{animation:wobble 4s ease-in-out infinite alternate,blob-one 13s ease-in-out infinite;bottom:-15%;height:200px;left:35%;width:200px}.blob:nth-child(2){animation:wobble 5s ease-in-out infinite alternate,blob-two 22s ease-in-out infinite;bottom:-65%;height:330px;right:24%;width:330px}.blob:nth-child(3){animation:wobble 6s ease-in-out infinite alternate,blob-three 16s ease-in-out infinite;bottom:-15%;height:150px;left:34%;width:150px}.blob:nth-child(4){animation:wobble 7s ease-in-out infinite alternate,blob-four 12s ease-in-out infinite;animation:wobble 8s ease-in-out infinite alternate,blob-four 12s ease-in-out infinite;bottom:-19%;height:235px;left:30%;width:235px}.blob:nth-child(5){animation:wobble 9s ease-in-out infinite alternate,blob-five 32s ease-in-out infinite;bottom:-25%;height:55px;left:34%;width:55px}.blob:nth-child(6){animation:wobble 10s ease-in-out infinite alternate,blob-six 12s ease-in-out infinite;bottom:-25%;height:35px;right:34%;width:35px}.blob:nth-child(7){animation:wobble 11s ease-in-out infinite alternate,blob-seven 32s ease-in-out infinite;bottom:-85%;height:435px;right:40%;width:435px}@keyframes blob-one{0%,to{transform:translatey(0)}50%{transform:translatey(-700%)}}@keyframes blob-two{0%,to{transform:translatey(0)}50%{transform:translatey(-420%)}}@keyframes blob-three{0%,to{transform:translatey(0)}50%{transform:translatey(-305%)}}@keyframes blob-four{0%,to{transform:translatey(0)}50%{transform:translatey(-605%)}}@keyframes blob-five{0%,to{transform:translatey(0)}50%{transform:translatey(-700%)}}@keyframes blob-six{0%,to{transform:translatey(0)}50%{transform:translatey(-700%)}}@keyframes blob-seven{0%,to{transform:translatey(0)}50%{transform:translatey(-300%)}}@keyframes wobble{50%{border-radius:42% 58% 70% 30%/45% 45% 55% 55%}to{border-radius:38% 52% 75% 36%/50% 40% 50% 60%}}.modal{align-items:center;-webkit-backdrop-filter:var(--modal-background-filter);backdrop-filter:var(--modal-background-filter);background-color:var(--modal-background);bottom:0;display:flex;height:100vh;justify-content:center;left:0;margin:auto;opacity:0;pointer-events:none;position:fixed;right:0;top:0;width:100vw;z-index:99}.modal,.modal.is-shown{transition:var(--modal-transition)}.modal.is-shown{opacity:1;pointer-events:all}.modal.is-shown .modal__box{margin-bottom:0;transition:var(--modal-transition)}.modal__box{-webkit-app-region:no-drag;background:var(--modal-box-background);border:var(--modal-box-border);border-radius:var(--modal-box-radius);display:flex;flex-direction:column;margin-bottom:var(--modal-box-initial-position);padding:var(--modal-box-padding)}.modal__header{margin-bottom:var(--modal-header-mb);position:relative}.modal__close{line-height:0;position:absolute;right:0;top:0}.modal__body{flex:1 1;margin-bottom:var(--modal-body-mb);max-height:50vh;overflow:auto}.modal__footer{text-align:var(--modal-footer-align)}.modal__footer .btn-simple{margin-bottom:0}.modal--xs .modal__box{max-height:var(--modal-xs-height);max-width:var(--modal-xs-width)}.modal--sm .modal__box{width:var(--modal-sm-width)}.modal--full .modal__header{display:none}.modal--full .modal__box{border:0;height:100vh;padding:0;width:100vw}.modal--full .modal__body{max-height:100%;overflow:hidden}.modal--full .modal__footer{display:none}.modal{--modal-transition:0.5s;--modal-background:#ffffff1a;--modal-background-filter:blur(10px);--modal-box-initial-position:-200vh;--modal-box-background:#fff;--modal-box-radius:8px;--modal-box-padding:20px;--modal-box-border:1px solid #cbcbcb;--modal-header-mb:24px;--modal-body-mb:24px;--modal-footer-align:center;--modal-xs-width:40vw;--modal-xs-height:80vh;--modal-sm-width:50vw}.modal__close{color:#fff;font-size:2rem;line-height:inherit;right:1rem;top:.6rem}.modal--windows .modal__box{overflow:hidden;padding:0;width:75vw}.modal--windows .modal__header{background:#222;padding:20px 0;text-align:center}.modal--windows .modal__header .h4{color:#fff;margin-bottom:0}.modal--windows .modal__body{display:flex;justify-content:space-around;max-height:80vh;padding:0 20px;text-align:center}@media(max-width:767px){.modal--windows .modal__body{display:block}}.modal--windows .modal__body>div{flex-basis:50%}@media(max-width:767px){.modal--windows .modal__body>div+div{margin-top:50px}}.modal--windows .modal__body .btn-simple{margin-bottom:0}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{border:0;font-size:100%;font:inherit;margin:0;padding:0;vertical-align:initial}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}table{border-collapse:collapse;border-spacing:0}::-moz-focus-inner{border:0;padding:0}input,select,textarea{-webkit-appearance:none}a:active,a:focus,button::-moz-focus-inner,input[type=button]::-moz-focus-inner,input[type=file]>input[type=button]::-moz-focus-inner,input[type=reset]::-moz-focus-inner,input[type=submit]::-moz-focus-inner,select::-moz-focus-inner{border:0;outline:0}*{-webkit-tap-highlight-color:rgba(0,0,0,0)}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}@media only screen and (orientation:landscape){.wrapper{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}section{contain-intrinsic-size:100vh;content-visibility:auto}@media print{@page{margin:2cm}*,:after,:before,:first-letter,blockquote:first-line,div:first-line,li:first-line,p:first-line{background:#0000!important;box-shadow:none!important;color:#000!important;text-shadow:none!important}body{background:#fff;color:#000}footer{display:none}img{max-width:100%!important}*{page-break-inside:avoid}a[href^=http]:after{content:" <" attr(href) "> "}a[href^="#"]:after{content:""}}@media print and (color){*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}*{box-sizing:border-box}.container{margin-left:auto;margin-right:auto;min-width:320px;padding-left:16px;padding-left:calc(var(--grid-gutter)/2);padding-right:16px;padding-right:calc(var(--grid-gutter)/2);transition:width .4s}@media(min-width:768px){.container{width:720px;width:var(--container-sm)}}@media(min-width:992px){.container{width:944px;width:var(--container-md)}}@media(min-width:1200px){.container{width:1136px;width:var(--container-lg)}}@media(min-width:1440px){.container{width:1248px;width:var(--container-xl)}}.container--fluid,.container--mixed{padding:0;width:100%}.container--mixed{display:block;max-width:1600px;max-width:var(--container-grid-mixed-width)}.container--grid{grid-column-gap:32px;grid-column-gap:var(--grid-gutter);display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}@media(max-width:767px){.container--grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.container--grid>*{grid-column-end:span 12}@media(max-width:767px){.container--grid>*{grid-column-end:span 4}}.container--grid--no-padding{grid-column-gap:0}.container--grid--justify-start{justify-content:start}.container--grid--justify-center{justify-content:center}.container--grid--justify-stretch{justify-content:stretch}.container--grid--justify-end{justify-content:end}@media(min-width:1px){[data-col-xs="1"]{grid-column-end:span 1}[data-col-xs="2"]{grid-column-end:span 2}[data-col-xs="3"]{grid-column-end:span 3}[data-col-xs="4"]{grid-column-end:span 4}[data-col-start-xs="1"]{grid-column-start:1}[data-col-start-xs="2"]{grid-column-start:2}[data-col-start-xs="3"]{grid-column-start:3}[data-col-start-xs="4"]{grid-column-start:4}}@media(min-width:768px){[data-col-sm="1"]{grid-column-end:span 1}[data-col-sm="2"]{grid-column-end:span 2}[data-col-sm="3"]{grid-column-end:span 3}[data-col-sm="4"]{grid-column-end:span 4}[data-col-sm="5"]{grid-column-end:span 5}[data-col-sm="6"]{grid-column-end:span 6}[data-col-sm="7"]{grid-column-end:span 7}[data-col-sm="8"]{grid-column-end:span 8}[data-col-sm="9"]{grid-column-end:span 9}[data-col-sm="10"]{grid-column-end:span 10}[data-col-sm="11"]{grid-column-end:span 11}[data-col-sm="12"]{grid-column-end:span 12}[data-col-start-sm="1"]{grid-column-start:1}[data-col-start-sm="2"]{grid-column-start:2}[data-col-start-sm="3"]{grid-column-start:3}[data-col-start-sm="4"]{grid-column-start:4}[data-col-start-sm="5"]{grid-column-start:5}[data-col-start-sm="6"]{grid-column-start:6}[data-col-start-sm="7"]{grid-column-start:7}[data-col-start-sm="8"]{grid-column-start:8}[data-col-start-sm="9"]{grid-column-start:9}[data-col-start-sm="10"]{grid-column-start:10}[data-col-start-sm="11"]{grid-column-start:11}[data-col-start-sm="12"]{grid-column-start:12}}@media(min-width:992px){[data-col-md="1"]{grid-column-end:span 1}[data-col-md="2"]{grid-column-end:span 2}[data-col-md="3"]{grid-column-end:span 3}[data-col-md="4"]{grid-column-end:span 4}[data-col-md="5"]{grid-column-end:span 5}[data-col-md="6"]{grid-column-end:span 6}[data-col-md="7"]{grid-column-end:span 7}[data-col-md="8"]{grid-column-end:span 8}[data-col-md="9"]{grid-column-end:span 9}[data-col-md="10"]{grid-column-end:span 10}[data-col-md="11"]{grid-column-end:span 11}[data-col-md="12"]{grid-column-end:span 12}[data-col-start-md="1"]{grid-column-start:1}[data-col-start-md="2"]{grid-column-start:2}[data-col-start-md="3"]{grid-column-start:3}[data-col-start-md="4"]{grid-column-start:4}[data-col-start-md="5"]{grid-column-start:5}[data-col-start-md="6"]{grid-column-start:6}[data-col-start-md="7"]{grid-column-start:7}[data-col-start-md="8"]{grid-column-start:8}[data-col-start-md="9"]{grid-column-start:9}[data-col-start-md="10"]{grid-column-start:10}[data-col-start-md="11"]{grid-column-start:11}[data-col-start-md="12"]{grid-column-start:12}}@media(min-width:1200px){[data-col-lg="1"]{grid-column-end:span 1}[data-col-lg="2"]{grid-column-end:span 2}[data-col-lg="3"]{grid-column-end:span 3}[data-col-lg="4"]{grid-column-end:span 4}[data-col-lg="5"]{grid-column-end:span 5}[data-col-lg="6"]{grid-column-end:span 6}[data-col-lg="7"]{grid-column-end:span 7}[data-col-lg="8"]{grid-column-end:span 8}[data-col-lg="9"]{grid-column-end:span 9}[data-col-lg="10"]{grid-column-end:span 10}[data-col-lg="11"]{grid-column-end:span 11}[data-col-lg="12"]{grid-column-end:span 12}[data-col-start-lg="1"]{grid-column-start:1}[data-col-start-lg="2"]{grid-column-start:2}[data-col-start-lg="3"]{grid-column-start:3}[data-col-start-lg="4"]{grid-column-start:4}[data-col-start-lg="5"]{grid-column-start:5}[data-col-start-lg="6"]{grid-column-start:6}[data-col-start-lg="7"]{grid-column-start:7}[data-col-start-lg="8"]{grid-column-start:8}[data-col-start-lg="9"]{grid-column-start:9}[data-col-start-lg="10"]{grid-column-start:10}[data-col-start-lg="11"]{grid-column-start:11}[data-col-start-lg="12"]{grid-column-start:12}}@media(min-width:1440px){[data-col-xl="1"]{grid-column-end:span 1}[data-col-xl="2"]{grid-column-end:span 2}[data-col-xl="3"]{grid-column-end:span 3}[data-col-xl="4"]{grid-column-end:span 4}[data-col-xl="5"]{grid-column-end:span 5}[data-col-xl="6"]{grid-column-end:span 6}[data-col-xl="7"]{grid-column-end:span 7}[data-col-xl="8"]{grid-column-end:span 8}[data-col-xl="9"]{grid-column-end:span 9}[data-col-xl="10"]{grid-column-end:span 10}[data-col-xl="11"]{grid-column-end:span 11}[data-col-xl="12"]{grid-column-end:span 12}[data-col-start-xl="1"]{grid-column-start:1}[data-col-start-xl="2"]{grid-column-start:2}[data-col-start-xl="3"]{grid-column-start:3}[data-col-start-xl="4"]{grid-column-start:4}[data-col-start-xl="5"]{grid-column-start:5}[data-col-start-xl="6"]{grid-column-start:6}[data-col-start-xl="7"]{grid-column-start:7}[data-col-start-xl="8"]{grid-column-start:8}[data-col-start-xl="9"]{grid-column-start:9}[data-col-start-xl="10"]{grid-column-start:10}[data-col-start-xl="11"]{grid-column-start:11}[data-col-start-xl="12"]{grid-column-start:12}}@media(max-width:767px){[data-col-start-lg],[data-col-start-md],[data-col-start-sm],[data-col-start-xl]{grid-column-start:1}}:root{--grid-gutter:32px;--container-sm:720px;--container-md:944px;--container-lg:1136px;--container-xl:1248px;--container-grid-mixed-width:1600px;--zindex0:0;--zindex1:100;--zindex2:200;--zindex3:300;--zindex4:400;--zindex5:500;--zindex6:600;--zindex7:700;--zindex8:800;--zindex9:900;--margin1:0.8rem;--margin2:1.6rem;--margin3:2.4rem;--margin4:3.2rem;--margin5:4rem;--margin6:4.8rem;--margin-elements:32px;--margin-components:18rem;--icon-xl:128px;--icon-lg:56px;--icon-md:48px;--icon-sm:32px;--icon-xs:24px;--input-height-xs:56px;--input-height-sm:56px;--input-height:56px;--input-height-lg:56px;--color-success:#9c3;--color-info:#6ea0c6;--color-warning:#fb7d0c;--color-danger:#ec3457;--color-disabled:#afafaf;--color-text-1:#262626;--color-text-2:#444;--white:#fff;--anthracite:#262626;--black:#000;--grey1:#e6e6e6;--grey2:#666;--grey3:#bbb;--blue1:#1c69d4;--blue2:#0653b6;--brown-grey:#979797;--color-bg-primary:#1c69d4;--color-text-1:#444;--color-text-2:#222;--color-text-3:#222;--color-text-4:#666;--color-bg-1:#ac30d3;--color-bg-2:#09263c;--color-bg-3:#9c3;--color-bg-4:#0076d9;--color-bg-5:#fbe16d;--color-bg-6:#c41772;--color-bg-7:#e6e6e6;--color-border-1:#e3e3e3;--color-black:#262626;--color-brown-grey:#8e8e8e;--color-blue-blue:#1c69d4;--color-greyish-brown:#4d4d4d;--color-very-light-pink:#d8d8d8;--color-placeholder-1:#e3e3e3;--color-accordion--hover:#f5f5f5;--color-brand:#0076d9}.steamOS,:root{--color-highlight:var(--color-bg-1)}.Windows{--color-highlight:var(--color-bg-4)}.Android{--color-highlight:var(--color-bg-3)}@font-face{font-family:Avenir;font-weight:100;src:url(/static/media/avenir-light-webfont.d196085b8931cbd397e4.woff2)}@font-face{font-family:Avenir;font-weight:300;src:url(/static/media/avenir-roman-webfont.7a1177012162742990ea.woff2)}@font-face{font-family:Avenir;font-weight:bolder;src:url(/static/media/avenir-medium-webfont.ff8afe24d18b3638bd70.woff2)}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:62.5%!important}h1,h2,h3,h4,h5,h6{font-size:inherit;margin:0;text-decoration:none;width:auto}@media(max-width:767px){html{font-size:var(--xs-adjustment)}}@media(max-width:991px){html{font-size:52%}}body{color:#444;color:var(--color-text-1);font-family:OpenSans;font-size:1.5rem;font-weight:400;letter-spacing:-.2px;line-height:140%;margin:0}@media(max-width:991px){body{font-size:1.5rem}}::selection{background:#0653b6;color:#fff}hr{margin:2.4rem 0;margin:var(--margin3) 0}p{color:#444;color:var(--color-text-1);line-height:140%;margin-bottom:2.4rem;margin-bottom:var(--margin3)}p.capitular:first-letter{float:left;font-size:6rem;margin:10px 1.5rem 1rem 0;vertical-align:bottom}.lead{font-family:Neuton;font-size:8rem}.lead,small{margin-bottom:2.4rem;margin-bottom:var(--margin3)}small{color:#666;color:var(--grey2);display:inline-block;font-size:1.2rem;line-height:1.8rem}b,strong{font-weight:700}abbr{border-bottom:1px dotted}em,i{font-style:italic}sub,sup{font-size:75%;line-height:0;position:relative;top:-.5em}sub{bottom:-.5em;top:auto}cite{font-style:italic}cite:after,cite:before{content:'"'}code{background:#000;color:#fff;display:block;font-family:Monaco;margin-bottom:.8rem;margin-bottom:var(--margin1);padding:10px}[class*=h1]{font-weight:700;margin-bottom:6rem}[class*=h1],[class*=h2]{background:none;border:0;color:#222;color:var(--color-text-2);display:block;font-family:Avenir;font-size:9.4rem;letter-spacing:-.05rem;line-height:9.4rem;padding-bottom:0}[class*=h2]{font-weight:100;margin-bottom:4.4rem}[class*=h3]{background:none;border:0;color:#222;color:var(--color-text-2);display:block;font-family:Avenir;font-size:6rem;font-weight:700;letter-spacing:-.05rem;line-height:6rem;margin-bottom:3.5rem;padding-bottom:0}[class*=h4]{color:#ac30d3;color:var(--color-highlight);font-size:2.5rem;line-height:2.5rem;margin-bottom:1rem}[class*=h4],[class*=h5]{background:none;border:0;display:block;font-family:Avenir;font-weight:300;letter-spacing:-.05rem;padding-bottom:0}[class*=h5]{font-size:2rem;line-height:2.7rem;margin-bottom:2rem}[class*=h5],[class*=h6]{color:#222;color:var(--color-text-2)}[class*=h6]{background:none;border:0;display:block;font-family:Avenir;font-size:1.5rem;font-weight:300;letter-spacing:-.05rem;line-height:1.5rem;margin-bottom:1.5rem;padding-bottom:0}hgroup{margin-bottom:100px}hgroup .h1,hgroup .h2{margin-bottom:0}html>body{color:#444;color:var(--color-text-1);font-family:Avenir;font-size:1.5rem;font-weight:400;letter-spacing:-.2px;line-height:140%;margin:0}@media(max-width:767px){.h1,.h2,.h3{-webkit-text-stroke-width:none;-webkit-text-stroke-color:#0000;font-size:6rem;line-height:6rem}.h3{font-size:4rem;line-height:4rem}}.lead{font-family:Avenir;font-size:2.2rem;font-weight:100;letter-spacing:0;margin-bottom:4rem;margin-bottom:var(--margin5)} +/*# sourceMappingURL=main.39bded82.css.map*/ \ No newline at end of file diff --git a/static/css/main.39bded82.css.map b/static/css/main.39bded82.css.map new file mode 100644 index 0000000..7a11c76 --- /dev/null +++ b/static/css/main.39bded82.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/main.39bded82.css","mappings":"AAOA,OAEE,gBADA,SAGA,cAGA,eACA,oBALA,kBAGA,oBAGA,QAAO,CAJP,SAIA,CAEF,iCAME,wBAHA,eACA,SAFA,qBAGA,sBAEA,mBACA,+CACE,qBAGF,6CACE,aAMA,yBAGE,cAFA,iBACA,iBACA,CAGJ,YACE,cAEA,kBADA,UACA,CAGE,6CADF,gBAEI,cAGA,eACA,eAAc,CAFd,kBADA,UAGA,EAIF,6CADF,gBAEI,cAGA,eACA,eAAc,CAFd,kBADA,UAGA,EAIF,yEADF,gBAEI,cAGA,eACA,eAAc,CAFd,kBADA,UAGA,EAIF,yEADF,gBAEI,cAGA,eACA,eAAc,CAFd,kBADA,UAGA,EAIF,oCADF,gBAEI,cAGA,eACA,eAAc,CAFd,kBADA,UAGA,EAOR,sBAEE,gBADA,YAIA,eADA,kBADA,SAEA,CAOF,WACE,oBAEA,iBACE,aAGF,yBAEE,eAAc,CADd,QACA,CCnEF,YACA,kBACA,CACA,6CACA,CAHA,qBACA,qCACA,CAKA,eACE,CAHF,uCAEA,CACE,uDAEE,CARJ,kCACA,2CAOI,yDAGF,uBACE,yCAGF,uBACE,yCAQJ,CACE,+DAGA,CAKA,8EACE,8CAOF,8DACA,kBAGF,wCACE,qCACA,iBAGF,wCACE,qCACA,iBAKJ,wCAGE,sCAcA,gJACA,yBAKA,sBAOE,CAXF,oBAHF,6BAcI,oCANA,wCADF,wCAKI,iDAGF,eACE,sCADF,UACE,wCAGF,yDACE,CAHA,sDAGA,oCAQN,0DAIA,CAXM,uDAON,CAIA,cACE,yBChKF,+BACE,aACA,8BACA,2CACA,4BACA,qBACA,+BACA,gCACA,iCACA,gCACA,+BACA,iCACA,+BACA,kCDME,+BAEA,4CAEA,4BAEE,kCAKF,CAPA,UAOA,oDAEE,CACA,eACA,CAFA,UAEA,qDAIO,4BACP,kCADO,UACP,sCAGO,kBACP,kCAxBF,8CAEA,+BAEA,4BAEE,CCPsD,8BDYxD,CAPA,UAOA,oDAEE,CACA,eACA,CAFA,UAEA,qDAIO,4BACP,kCADO,UACP,sCAGO,kBACP,+BAxBF,8CAEA,+BAEA,4BAGE,6BAIF,CAPA,UAOA,oDAEE,CACA,eACA,CAFA,UAEA,qDAIO,4BACP,kCADO,UACP,sCAGO,kBACP,6BCpBJ,8CAKA,eACA,4BAIA,aAIA,kBACA,CAJA,kBAEA,eAEA,yBACA,sCAKF,8BAEE,CARA,WAQA,yBAIA,sBAEA,EAMA,oCADF,iBAGE,CAFA,KAEA,iDASA,uCAZF,CAGE,kDACA,+EAEA,sBACA,CACA,gCACA,yBACA,CAPA,WAeF,mBAEI,CAVF,iBACA,CACA,QADA,KACA,CAZF,kBAkBA,CAfE,WAeF,UAEI,mCAGA,yEAGA,KAEF,mCACE,CAEF,IACE,mCAEF,KACE,mCAKF,yCACA,qCAEA,6BACE,+BAKF,CAPA,0CAOA,yBAEA,cAEA,2BACA,UAQE,mBADA,cACA,CALF,eACE,MAEF,qBAEE,eACA,WAEF,CAIE,8BADA,kBACA,CAHA,YACA,8BAaA,CAXA,eAEF,cASE,eACA,UACA,gBACA,aAGA,YACE,+BAEA,CALA,eAKA,oBAEA,+BAIJ,UAEE,cACA,yBAKF,CAXI,aAGJ,wBACE,CAJE,0BAWJ,yBAOA,WAHF,iBAEE,SACA,MAIA,kBAIA,CALF,iBAKE,eAEE,eADA,UACA,oBAKF,iBACA,+CACA,iCAEF,CAEI,mCAFJ,gCAEI,mpBAKA,2nBAKA,wnBAKA,0nBAKA,6nBASF,kCAEF,CAEI,mCAFJ,gCAEI,0eAKA,kdAKA,udAKA,mdAKA,odAUF,EACA,kBAQA,kBAEA,CANF,eACE,CACA,kBAEA,CARA,iBAIF,CACE,UAKA,0BAME,QAGA,CAEA,WACA,CANA,OADF,iBACE,CAGA,OACA,CAJA,MAIA,UAGA,4BAGE,QAEF,CAbF,OAUI,WACA,CAFF,iBATF,QAUI,CAGF,8BAbF,2BAeI,UAEF,CAHE,SAGF,0BAjBF,2BAmBI,YAEF,CAHE,WAGF,0BArBF,2BAuBI,YAEF,CAHE,WAGF,2BAzBF,2BA2BI,YAWN,CAZM,WAYN,2BAEE,2BAIA,aAFF,WAEE,SACA,gBAEA,kBAEA,0BAOA,yCAGA,CARA,oDAEF,4BAGE,CANA,YACA,CAFA,MACA,CADA,wBACA,UASA,eAGA,2BACA,CADA,SADA,QAEA,QAEA,wCACA,CACA,uCAEE,CAJF,OADA,iBACA,OAME,8BAEF,CAJE,wBAEA,CALF,SACA,WAMA,oBAGE,wCAFA,OACA,WAGF,qBAGE,yCAFA,QACA,WAGF,qBAGE,yCAFA,QACA,WAGF,qBAGE,wCAEF,CAJE,QACA,WAGF,qBAGE,uCAEF,CAJE,QACA,WAGF,qBAGE,wCAEF,CAJE,QACA,UAGF,qBAGE,wCAEF,CAJE,QACA,UAGF,qBAGE,wCAFA,QACA,WAOJ,qBAMI,wCAQJ,CAZI,mBAaF,mBACE,2CAGA,sEAGA,wDAGA,uDAGA,yDAMA,qDAGA,uEAGA,yDAGA,sDAGA,yDAKA,qDAGA,uEAGA,wDAGA,sDAGA,yDAKF,IACA,iDAEA,8BAJF,6BAOE,mBACE,yBAEF,gBACE,aAEF,oBACE,kBACA,qBACA,WACA,gCAJF,8BAKI,CAKN,iBACE,yBACA,mBACA,kBACA,sCAEF,oBAEI,uDAKA,iBACA,yBAGA,UACA,uBAEA,sBAGA,WACA,sBAEA,sBAGA,kBACA,oBAEA,qBAIJ,aACE,uBACA,sBACA,oEAIF,kEAOE,eAEE,qBAGF,GACE,mBACA,wFC7gBJ,YAGE,cAFA,kBACA,yCACA,CACA,sBACE,aAEF,mBAGE,eAFA,cACA,gBAEA,UACA,mBAEF,0BAKE,SAJA,WACA,cAIA,SAHA,kBACA,KAEA,CAEF,wDACE,QAIJ,YACE,8BACA,oCAKE,+CAFA,sDACA,uCAHA,gCACA,qCAIA,2CAEF,0BAIE,qCAKA,4CACA,uCAEA,6EAVA,oCAGA,4FAFA,+BAQA,4CAVA,kCAWA,CAGF,wDACE,iCAGF,iDACE,6CAEF,yGAEE,yCACA,2CCpEJ,YACE,wBAAyB,CACzB,mDAAsD,CACtD,4DAA6D,CAC7D,yBAA0B,CAC1B,yBAA2B,CAC3B,+DAAgE,CAChE,kDAAmD,CACnD,wDAAyD,CACzD,+CAAgD,CAChD,2CAA4C,CAC5C,6BAA+B,CAC/B,+DAAgE,CCShE,uBAEE,sBADA,oBACA,CAGF,uBAEE,sBADA,oBACA,CAGF,uBAEE,sBADA,oBACA,CAGF,uBAEE,sBADA,oBACA,CAGF,uBAEE,sBADA,oBACA,CCpCJ,eACE,qBAIF,qBACE,gBACA,iBACA,kBACA,kBACA,SAIF,EAEE,cADA,oBACA,CCIA,mBACE,WACA,cACA,UAMA,6EACE,WACA,cACA,UAKN,aAGE,mBADA,oBACA,CAEA,gCAJA,wCASE,CALF,mBAIE,wBACA,uBAFA,WADA,QAGA,CAMA,6EAEE,WADA,UACA,CC3DN,aACE,6BAA8B,CDU9B,gBACE,kBCJF,CDKE,eCFF,CDGE,sBACE,kBCNJ,CDQE,yBACE,2BCRJ,CCbF,kBAEE,cACA,SAEA,gBACA,mBALA,iBAKA,CACA,wBAOE,QAAO,CAJP,SAGA,YAFA,OAHA,kBACA,MAGA,UAEA,CCOF,mBACE,8EAIF,WACE,uBADF,+BACE,yDAIF,WACE,uBADF,+BACE,yDAIF,WACE,uBADF,+BACE,yDAIF,WACE,uBADF,+BACE,yDChCA,kCACA,CDqCF,gCCpCI,+BAMF,UACE,oBAEF,qBACE,eACA,mBAOF,iBACE,0BACA,UAGF,kBACE,mEAQA,2CAPA,2DAOA,oBAOA,0CANA,0DAMA,oBAOA,0CANA,0DAMA,oBAOA,0CANA,0DAMA,oBAQA,eACA,0BAEF,CAVE,0DAUF,yBAEE,kBAEA,sBAIJ,CACE,mBACA,MACE,CAFF,iBACA,CACE,iBACA,CADA,KACA,CAaA,+BADF,oBAKE,CAJA,iBAEA,eAEA,2BALF,WAME,WACA,eAPF,CAME,gBACA,CAPF,sBASI,mBAOR,yBACE,0BAGE,UACA,gBAGF,+BACE,gCACA,kBACA,mBACA,wBAKF,0BAEA,qBACE,kBAKA,mCACE,yCAEF,mBAEE,6CACA,0BAUJ,oCAEE,CAHF,mBANI,+BAMJ,CARI,kCACA,CACA,8BASF,6CAEF,CACE,kEAKE,mDACA,2BAFF,+BAOA,yBACE,oCAEA,4BAHF,kDAYF,yBACA,0BACE,eC3LJ,QACE,8BACA,0CACA,OACA,wBACA,oDACA,uBACA,6CACA,8BACA,sBAIF,iCACE,2BAKA,iBACA,+FCbF,eAIE,mCAHA,kBACA,oBACA,uBACA,CAEF,oCAEE,kBAUF,iBACE,GACE,uBAEF,GACE,yBAIJ,eAME,wHAJA,eADA,qCAKA,CAEF,oCAGE,qCADA,mCACA,CC7CF,eACE,8BAA+B,CAC/B,6BAA8B,CAC9B,yCAA0C,CAC1C,iCAAkC,CCgCpC,UAEE,gBACA,wBACA,qBACA,YAJA,UAIA,CAGA,eACE,cACA,YACA,kBAIJ,UACE,8BACA,iCACA,sCAGA,eACE,oCACA,mCC3DJ,UACE,sBAAuB,CACvB,4BAA6B,CAC7B,mCAAoC,CACpC,qBAAuB,CACvB,yBAA0B,CAC1B,qCAAsC,CDMtC,mBAeE,mCCdF,0CDCI,mCCDJ,CDIE,2CAEE,sCADA,+CCJJ,CDQE,sCACE,qCCTJ,CDeE,wBACE,qCChBJ,CDiBI,UCnBJ,CCDE,2BAEE,kBA8BE,uDAGA,qCAIF,CAQE,oDAGA,qCAIF,CAQE,uDAGA,wCAIF,CAQE,sDAGA,uCAIJ,CA4BA,qBAGE,uCACA,CAJF,kBAIE,4BAYN,uCAII,2CAIA,qBAIA,kCACE,2BACA,gBAMA,wCAIF,+CAEE,iBAFF,cAEE,wCAYA,8PAOA,oDAFE,WAEF,mIAKE,qCAIF,6OAKE,kBAEF,oLAKE,qCAIF,sPAOA,uDAFE,cAEF,mIAKE,wCAIF,wPAOA,sDAFE,aAEF,iIAKE,uCAIJ,wCACE,qCACA,wCACE,wBACA,4CAON,yDAGE,CARI,2BAQJ,0EAKA,kCAHA,iFAEA,0CACA,gIAEE,6CAMF,8DAOE,oBACA,CANF,6CACA,wCACA,CAEA,qDACE,CAJF,0BACA,2EAEA,CALA,kBAOE,4BACA,8CAKA,6CCzRJ,CDwRI,qDACA,CALA,yBAEA,4EAEA,CCxRJ,uCACA,eACA,iDACA,yBACA,+BACA,+BACA,gCACA,+BACA,0EAGA,6BAGA,2BACA,2BACA,kEACA,gSACA,8ECNA,2BCgBA,cACA,CACA,oBACA,CDhBA,yCCgBA,CACA,iCDXE,kBACA,SACA,CAHF,sBACE,iBADF,UCcA,iBACA,UDZE,kCAKA,cACA,mBACA,CAJA,2BAWE,CAMA,+EADA,qBACA,CAHF,WACE,oBACA,CAFF,iBAyDF,CAtDI,uCAWF,SA2CF,sDACE,mDAGF,gBACE,+EAKA,kEAiBE,8BACA,CANF,WAGA,CAPA,oCAEA,CAKA,2BAEE,CAFF,aAJA,4BAOE,yCAKF,iCACE,mBACA,CALA,+BAGF,CAJE,qCAMA,wCAKA,uCAUF,oBAVE,WAJA,MACA,gCACA,qCAEA,CAUF,uDACE,CAXA,SAWA,sDAMA,uCACA,mBEzJN,CFuJM,sCACA,CAJA,mCACA,mCACA,CEtJN,uBACE,sDAEA,CFmJI,qCEnJJ,uCACA,4BACA,4BACA,yEAEA,4CACA,+BACA,8BACA,kEACA,2DFqDE,6DACE,yBAKE,uCACA,CALF,qEAKE,gCAIA,kCACA,CAFF,wCAEE,+BAOF,kCACE,kCACA,6CArBJ,gEACE,CAqBE,oEACA,gEAtBF,yBAKE,uCACA,CALF,qEAKE,gCAIA,kCACA,CAFF,wCAEE,+BAOF,kCACE,kCACA,6CArBJ,gEACE,CAqBE,oEACA,gEAtBF,yBAKE,uCACA,CALF,qEAKE,gCAIA,kCACA,CAFF,wCAEE,+BAOF,kCACE,kCACA,6CAEA,iEADA,oEACA,iEG7EN,iBFgBA,cACA,qBAEA,CElBA,wBFcA,iBAIA,wBEXE,kBACA,UAHF,WACE,2BACA,CAFF,UFeA,iBACA,UEbE,wBAGE,cACA,CAFA,iBAEA,CAMA,2DADA,qBACA,CAJF,UACE,qBAEA,CAHF,iBAsDF,CAlDI,6BAUF,kBACE,UAuCJ,4CAEE,sDAIF,qBACE,SADF,qBACE,wDAKA,wEAMA,uCAEE,CALF,8EAKE,4CAOF,oCAGE,gBAGA,CATA,kCAGF,CALE,wCAWA,2CAQF,WARE,QAQF,CARE,QAQF,0DACE,CADF,SACE,0DAIF,gDAGE,CANA,0CAMA,yDAMA,0EAlFF,CAgFE,eAEA,CAHA,kCACA,CAFA,OADA,QACA,CA9EF,wDACE,CA6EA,iCA7EA,4BAIE,0CACA,CAJF,2EAIE,mCAIA,qCACA,CAFF,oCAEE,kCAOF,0EACE,gDAlBF,sCADF,oCACE,4BAIE,0CACA,CAJF,2EAIE,mCAIA,qCACA,CAFF,oCAEE,kCAOF,0EACE,gDAlBF,sCADF,oCACE,4BAIE,0CACA,CAJF,2EAIE,mCAIA,qCACA,CAFF,oCAEE,kCAOF,0EACE,gDCvEN,qCAEA,CAHF,oCAGE,6CACA,+BACA,+BACA,+EACA,6DAEA,+EACA,iEACA,kEACA,4bCeF,kBACE,oBAEA,iDA7BA,uCACA,eAAc,CAHd,eADA,uCAEA,qGAEA,CAgCA,wCAjBA,wBAFA,uCATA,SAOA,wFADA,mBAYA,2CAfA,sBAOA,eATA,qCAYA,uFATA,yCACA,wCAHA,mCAgBA,CAcA,uDACE,6CAGF,oCAzCA,uCACA,eAAc,CAHd,eADA,uCAEA,kGAEA,CA4CA,oCA7BA,wBAFA,uCATA,SAOA,wFADA,mBAYA,2CAfA,sBAOA,eATA,qCAYA,uFATA,yCACA,wCAHA,mCAgBA,CA0BA,6BAjDA,uCACA,eAAc,CAHd,eADA,uCAEA,iGAEA,CAgEA,6BAjDA,wBAFA,uCATA,SAOA,wFADA,mBAYA,2CAfA,sBAOA,eATA,qCAYA,uFATA,yCACA,wCAHA,mCAgBA,CC3BF,kBACE,+BAAgC,CAChC,mCAAoC,CACpC,yCAA0C,CAC1C,mCAAoC,CACpC,4CAA6C,CAC7C,6BAA8B,CAC9B,mCAAoC,CACpC,mCAAoC,CACpC,sCAAuC,CACvC,sCAAuC,CACvC,+BAAiC,CCXnC,SACE,sCAAuC,CAMrC,iCACE,qBAEF,mBACE,UAIA,yEACE,gBAMJ,kCACE,kBAEF,wIAOE,oCAEF,oBACE,aAIA,2EACE,6BAMJ,gCACE,kBAEF,0HAOE,6BAEF,kBACE,aAIA,uEACE,6BAKN,eACE,0BAGF,kBACE,gCACA,WACA,kBACA,yBAEE,gCADA,WAIA,cAFA,WAGA,kBACA,SAHA,UAGA,CAIJ,+DAKE,WACA,kBAIJ,MACE,uBAOA,aAJA,SAMA,gBAPA,QAEA,+BAIA,YAEA,WAGF,YAZE,iBAkBA,CANF,MACE,iBAEA,YAGA,MAAK,CADL,MADA,UAEA,CAGF,MAEE,kCADA,kBAiBA,kBAGF,UAIE,OACA,CAEF,uBANE,kBAEA,UAEA,MAAK,CAHL,UAUA,CALF,aAIE,UACA,CAEF,kBAME,qFAFA,YAFA,aACA,SAFA,WAKA,CAEF,mBAME,qFAFA,YAFA,aACA,UAFA,WAKA,CAEF,mBAME,uFAHA,YADA,aAEA,SAHA,WAKA,CAEF,mBAME,sFAOA,sFAFA,YADA,aAEA,SAHA,WAHA,CASF,mBAME,sFAHA,YADA,YAEA,SAHA,UAKA,CAEF,mBAME,sFAHA,YADA,YAEA,UAHA,UAKA,CAEF,mBAME,wFAHA,YADA,aAEA,UAHA,WAKA,CAEF,oBACE,MAEE,wBAEF,IACE,6BAIJ,oBACE,MAEE,wBAEF,IACE,6BAIJ,sBACE,MAEE,wBAEF,IACE,6BAGJ,qBACE,MAEE,wBAEF,IACE,6BAGJ,qBACE,MAEE,wBAEF,IACE,6BAGJ,oBACE,MAEE,wBAEF,IACE,6BAGJ,sBACE,MAEE,wBAEF,IACE,6BAIJ,kBACE,IACE,8CAEF,GACE,+CC3RJ,OAiBE,mBALA,sGADA,yCALA,SASA,aAPA,aAQA,uBAZA,OAKA,YAIA,UACA,oBAZA,eAGA,QAFA,MAIA,YANA,UAgBA,CACA,uBARA,kCAWE,CAHF,gBACE,UAEA,mBACA,4BACE,gBACA,mCAIJ,YACE,2BAEA,uCAKA,+BAJA,sCAEA,aACA,sBALA,gDAGA,gCAGA,CAGF,eACE,qCACA,kBAEF,cAIE,aAAY,CAHZ,kBAEA,QADA,KAEA,CAEF,aACE,SAGA,mCAFA,gBACA,aACA,CAEF,eACE,qCACA,2BACE,gBAIF,uBAEE,kCADA,+BACA,CAIF,uBACE,4BAIF,4BACE,aAEF,yBAIE,QAAO,CADP,aAFA,UACA,WAEA,CAEF,0BACE,gBACA,gBAEF,4BACE,aC9FN,OACE,uBAAwB,CACxB,4BAA4C,CAC5C,oCAAqC,CACrC,mCAAoC,CACpC,2BAA4B,CAC5B,sBAAuB,CACvB,wBAAyB,CACzB,oCAAqC,CACrC,sBAAuB,CACvB,oBAAqB,CACrB,2BAA4B,CAC5B,qBAAsB,CACtB,sBAAuB,CACvB,qBAAsB,CAGxB,cAEE,WACA,eAFA,oBAIA,WADA,SACA,CAIA,4BAGE,gBAFA,UACA,UACA,CAEF,+BAGE,gBADA,eADA,iBAEA,CACA,mCACE,WACA,gBAGJ,6BAEE,aAIA,6BACA,gBANA,eAOA,kBALA,wBAHF,6BAII,eAKF,iCACE,eAEF,wBACE,qCACE,iBAGJ,yCACE,gBChDN,2ZAmFE,SACA,eACA,aAJA,SACA,UAIA,uBAGF,8EAWE,cAEF,KACE,cAEF,MAEE,gBAEF,aAEE,YAEF,oDAIE,WACA,aAEF,MACE,yBACA,iBAOF,mBACE,SACA,UAgBF,sBAGE,wBAMF,uOAQE,SACA,UAMF,EACE,0CAOF,4FAEE,wBACA,SAGF,mBACE,0BAMF,+CACE,SACE,uCACA,0CAOJ,QAEE,6BADA,uBACA,CAIF,aACE,MACE,WAGF,+FAQE,2BAEA,0BADA,qBAEA,2BAGF,KAEE,gBADA,UACA,CAGF,OACE,aAGF,IACE,yBAGF,EACE,wBAGF,oBACE,6BAGF,mBACE,YAIJ,yBACE,EACE,2CACA,oCCpQJ,EACE,sBAIF,WAIE,iBADA,kBAEA,gBAHA,0DADA,4DAKA,qBACA,wBAPF,WAQI,uCAGF,wBAXF,WAYI,uCAGF,yBAfF,WAgBI,wCAGF,yBAnBF,WAoBI,wCAQF,oCAHE,SAAQ,CADR,UAQA,CAJF,kBAIE,cAFA,4DAEA,CAIJ,iBAGE,wDAFA,aACA,8CACA,CAEA,wBALF,iBAMI,+CAGF,mBACE,wBACA,wBAFF,mBAGI,wBAIJ,6BACE,kBAGF,gCACE,sBAGF,iCACE,uBAGF,kCACE,wBAGF,8BACE,oBA2BF,sBAEI,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBAQF,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CAPT,CAHN,wBAEI,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,mBACE,wBADF,mBACE,wBADF,mBACE,wBAQF,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,yBACE,oBAFS,CACX,yBACE,oBAFS,CACX,yBACE,oBAFS,CAPT,CAHN,wBAEI,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,mBACE,wBADF,mBACE,wBADF,mBACE,wBAQF,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,yBACE,oBAFS,CACX,yBACE,oBAFS,CACX,yBACE,oBAFS,CAPT,CAHN,yBAEI,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,mBACE,wBADF,mBACE,wBADF,mBACE,wBAQF,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,yBACE,oBAFS,CACX,yBACE,oBAFS,CACX,yBACE,oBAFS,CAPT,CAHN,yBAEI,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,mBACE,wBADF,mBACE,wBADF,mBACE,wBAQF,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,yBACE,oBAFS,CACX,yBACE,oBAFS,CACX,yBACE,oBAFS,CAPT,CAsBR,wBACE,gFAIE,qBCrIJ,MACE,kBAAmB,CACnB,oBAAqB,CACrB,oBAAqB,CACrB,qBAAsB,CACtB,qBAAsB,CACtB,mCAAmC,CCCnC,WAAY,CACZ,aAAc,CACd,aAAc,CACd,aAAc,CACd,aAAc,CACd,aAAc,CACd,aAAc,CACd,aAAc,CACd,aAAc,CACd,aAAa,CCfb,gBAAiB,CACjB,gBAAiB,CACjB,gBAAiB,CACjB,gBAAiB,CACjB,cAAe,CACf,gBAAiB,CAEjB,sBAAuB,CACvB,yBAA0B,CAK1B,eAAgB,CAChB,cAAe,CACf,cAAe,CACf,cAAe,CACf,cAAe,CAKf,sBAAuB,CACvB,sBAAuB,CACvB,mBAAoB,CACpB,sBAAsB,CAOtB,oBAAwB,CACxB,oBAAqB,CACrB,uBAAwB,CACxB,sBAAuB,CACvB,wBAAyB,CAEzB,sBAAuB,CACvB,mBAAoB,CAEpB,YAAgB,CAChB,oBAAqB,CACrB,YAAgB,CAChB,eAAgB,CAChB,YAAgB,CAChB,YAAgB,CAChB,eAAgB,CAChB,eAAgB,CAChB,oBAAqB,CAErB,0BAA2B,CAE3B,mBAAoB,CACpB,mBAAoB,CACpB,mBAAoB,CACpB,mBAAuB,CAGvB,oBAAqB,CACrB,oBAAqB,CACrB,iBAAqB,CACrB,oBAAqB,CACrB,oBAAgC,CAChC,oBAAqB,CACrB,oBAAqB,CACrB,wBAAyB,CAEzB,qBAAsB,CACtB,0BAA2B,CAC3B,yBAA0B,CAC1B,6BAA8B,CAC9B,+BAAgC,CAEhC,6BAA8B,CAE9B,gCAAiC,CACjC,qBFxEoC,CE4EtC,eAFE,mCAGoC,CAGtC,SACE,mCAAoC,CAGtC,SACE,mCAAoC,CC5EtC,WACE,mBAKA,gBAJA,sEAIA,YACA,mBAKA,gBALA,sEAKA,8BACA,CCSA,kBACA,CDVA,uECUA,MAMF,kCAOE,CACA,iCA2BA,CAzCA,yBAyCA,mBACE,iBAEF,CAHA,QACE,sBAEF,mCASF,KACE,8BAEA,0BACA,kBArCgB,CAsChB,MAGA,oCACE,CAHF,oBACA,CAFA,gBACA,CACA,eACA,CACE,oBAQF,iBACA,CAbA,QAaA,yBAQA,mCAIA,gDACA,wBACA,GAII,UACA,0BACA,CAHA,gBACA,CAJJ,qBAjEgB,4BAuEZ,0BACA,UAKN,CACE,eAGA,0BADA,qBACA,0BAGF,cAGE,aADA,oBACA,6BAmBF,CAnBE,MAWA,UAKA,mBAGF,CAlBE,oBACA,CAFA,gBACA,CASF,kBASA,UAEE,eACA,8BAEA,uBAKA,sBAIA,cACA,4BAEE,KAKF,YACA,CAFF,QAEE,uBAEA,wBACA,WACA,iCA9KE,aACA,CA6KF,kBA9KE,CACA,mBACA,6BACA,CA2KF,YA3KE,CCEqD,YDErD,eACA,CARA,kBAGA,CCGqD,wBDHrD,gBADA,QACA,CAOA,oCAVA,CAIA,aCC+D,CDC/D,kBACA,CCF+D,gBDC/D,CAEA,sBAXO,CASP,mBALA,gBAGA,CCEqD,YDCrD,eCDyF,CDNzF,oBAIA,aADA,gBADA,QACA,CAMA,UACA,0BAVA,CCO2D,aDF3D,CACA,kBCCgE,CDFhE,cACA,CCCgE,gBDChE,sBACA,CAHA,iBANA,oBACA,iBAEA,CCKqD,YDCrD,aACA,6BAVA,CAKA,gBACA,oBANA,kBAIA,yBADA,eCMmD,CDPnD,QACA,CACA,aACA,CACA,mBCEoE,eDDpE,uBAEA,CCA2B,gBDN3B,CACA,YACA,cACA,oBANA,kBAGA,CCOqD,wBDArD,oCCqDF,CArDuD,YAoDzD,eACE,CA/CE,QA8CJ,CD1DI,aACA,CACA,kBACA,CAFA,gBACA,CACA,eCGyF,CDFzF,sBACA,CAHA,mBCOF,oBACA,iBAiDA,QACA,mBACA,uBACA,eACA,WAQA,oCACE,CARF,kBACA,CAFA,gBACA,CACA,eAMA,CACE,oBACA,iBACA,CAXF,QAWE,yBACA,YAMF,8BACE,gCAsCF,CA7CE,+BA6CF,CAEA,kBACA,kBAHA,CAGA,yBACA","sources":["../node_modules/getbasecore/src/components/atoms/Btn/core_btn.scss","../node_modules/getbasecore/dist/components/atoms/BtnSimple/core_btn-simple.scss","components/atoms/BtnSimple/btn-simple.scss","../node_modules/getbasecore/dist/components/atoms/BtnSwitch/core_btn-switch.scss","components/atoms/BtnSwitch/btn-switch.scss","../node_modules/getbasecore/dist/components/atoms/Icon/core_icon.scss","../node_modules/getbasecore/src/components/atoms/Link/core_link.scss","../node_modules/getbasecore/src/components/atoms/LinkSimple/core_link-simple.scss","../node_modules/getbasecore/dist/components/atoms/LinkSimple/link-simple.scss","../node_modules/getbasecore/src/components/atoms/Iframe/core_iframe.scss","../node_modules/getbasecore/src/components/atoms/Icon/core_icon.scss","../node_modules/getbasecore/dist/components/atoms/List/core_list.scss","components/atoms/List/list.scss","../node_modules/getbasecore/dist/components/atoms/LoaderCircle/core_loader-circle.scss","components/atoms/LoaderCircle/loader-circle.scss","../node_modules/getbasecore/dist/components/atoms/ProgressBar/core_progress-bar.scss","components/atoms/ProgressBar/progress-bar.scss","../node_modules/getbasecore/dist/components/atoms/FormInputSimple/core_form-input-simple.scss","components/atoms/FormInputSimple/form-input-simple.scss","../node_modules/getbasecore/dist/components/atoms/FormRadioSimple/core_form-radio-simple.scss","../node_modules/getbasecore/src/utils/mixins/core_mixins.scss","components/atoms/FormRadioSimple/form-radio-simple.scss","../node_modules/getbasecore/dist/components/atoms/FormCheckboxSimple/core_form-checkbox-simple.scss","components/atoms/FormCheckboxSimple/form-checkbox-simple.scss","../node_modules/getbasecore/dist/components/atoms/FormInputRangeSimple/core_form-input-range-simple.scss","components/atoms/FormInputRangeSimple/form-input-range-simple.scss","components/molecules/Section/section.scss","components/molecules/Modal/core_modal.scss","components/molecules/Modal/modal.scss","../node_modules/getbasecore/src/utils/reset/core_reset.scss","../node_modules/getbasecore/src/utils/grid-layout/core_grid-layout.scss","utils/grid-layout/grid-layout.scss","../node_modules/getbasecore/src/utils/vars/core_vars.scss","utils/vars/vars.scss","global.scss","../node_modules/getbasecore/src/components/atoms/Typography/core_typography.scss","components/atoms/Typography/typography.scss"],"sourcesContent":["//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n@import \"/src/utils/grid-layout/grid-layout.scss\";\nbutton {\n border: 0;\n background: none;\n font-size: inherit;\n color: inherit;\n padding: 0;\n line-height: inherit;\n cursor: pointer;\n font-family: inherit;\n margin: 0;\n}\n[class*=\"btn-\"],\n.form .form__addon {\n text-decoration: none;\n cursor: pointer;\n margin: 0;\n vertical-align: middle;\n -webkit-appearance: none;\n vertical-align: top;\n &::hover {\n text-decoration: none;\n }\n\n &:focus {\n outline: none;\n }\n}\n\n.btn {\n &--center {\n &.btn--center {\n margin-left: auto;\n margin-right: auto;\n display: block;\n }\n }\n &--block {\n display: block;\n width: 100%;\n text-align: center;\n\n &--xs {\n @media (min-width: $screen-xs) and (max-width: $screen-xs-max) {\n display: block;\n width: 100%;\n text-align: center;\n padding-left: 0;\n padding-right: 0;\n }\n }\n &--sm {\n @media (min-width: $screen-sm) and (max-width: $screen-sm-max) {\n display: block;\n width: 100%;\n text-align: center;\n padding-left: 0;\n padding-right: 0;\n }\n }\n &--md {\n @media (min-width: var(--screen-md)) and (max-width: var(--screen-md-max)) {\n display: block;\n width: 100%;\n text-align: center;\n padding-left: 0;\n padding-right: 0;\n }\n }\n &--lg {\n @media (min-width: var(--screen-lg)) and (max-width: var(--screen-lg-max)) {\n display: block;\n width: 100%;\n text-align: center;\n padding-left: 0;\n padding-right: 0;\n }\n }\n &--xl {\n @media (min-width: var(--screen-xl)) {\n display: block;\n width: 100%;\n text-align: center;\n padding-left: 0;\n padding-right: 0;\n }\n }\n }\n}\n\n// Reset para botones con aspecto de link\nbutton[class*=\"link--\"] {\n border: none;\n background: none;\n padding: 0;\n font-size: inherit;\n cursor: pointer;\n}\n\n// --------------------------------------------------\n// Button Groups\n// --------------------------------------------------\n\n.btn-group {\n display: inline-flex;\n //Ocultamos input cuando son Toggles\n input {\n display: none;\n }\n\n [class*=\"btn-\"] {\n margin: 0;\n border-radius: 0;\n }\n}\n","//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n@import \"~getbasecore/src/components/atoms/Btn/core_btn.scss\";\n@import \"/src/global.scss\";\n@mixin generate-btn-simple(\n $name,\n $color,\n $bg,\n $color-hover,\n $bg-hover,\n $bg-active,\n $color-disabled,\n $bg-disabled\n) {\n .btn-simple--#{$name} {\n fill: $color;\n color: $color;\n background: $bg;\n\n &:hover,\n &:focus {\n fill: $color-hover;\n color: $color-hover;\n background: $bg-hover;\n }\n\n &[disabled],\n &.is-disabled {\n fill: $color-disabled;\n color: $color-disabled;\n background: $bg-disabled;\n }\n //When used as a fake radio / checkbox\n\n @at-root .btn-group input + label#{&} {\n background: $bg;\n }\n\n @at-root .btn-group input:checked + label#{&} {\n background: $bg-active;\n }\n }\n}\n\n.btn-simple {\n display: inline-block;\n align-items: center;\n font-size: var(--btn-simple-text-size);\n padding: var(--btn-simple-padding);\n border-radius: var(--btn-simple-border-radius);\n transition: var(--btn-simple-transition-out);\n line-height: var(--btn-simple-text-size);\n font-weight: bold;\n margin-bottom: var(--margin-elements);\n //Remember, the button has the same height as the form input to be hable to use the button in horizontal forms. Adjust the height in _vars component\n .form & {\n height: var(--input-height);\n &--xs {\n height: var(--input-height-xs);\n }\n\n &--sm {\n height: var(--input-height-sm);\n }\n\n &--lg {\n height: var(--input-height-lg);\n }\n }\n\n // @media (max-width: $screen-xs-max) {\n // height: auto;\n // }\n\n &:hover {\n transition: var(--btn-simple-transition-in);\n }\n &:focus {\n transition: var(--btn-simple-transition-in);\n }\n\n //Separación entre botones juntos en XS\n &--block + .btn--block {\n @media (min-width: $screen-xs) and (max-width: $screen-sm-max) {\n margin-top: var(--btn-simple-mt);\n }\n }\n\n //Variantes de tamaños\n\n &--xs {\n font-size: var(--btn-simple-text-size-xs);\n padding: var(--btn-simple-padding-xs);\n }\n\n &--sm {\n font-size: var(--btn-simple-text-size-sm);\n padding: var(--btn-simple-padding-sm);\n }\n\n &--lg {\n font-size: var(--btn-simple-text-size-lg);\n padding: var(--btn-simple-padding-lg);\n }\n}\n\n//Ajustes cuando el botón es un elemento diferente a button\na.btn-simple,\nlabel.btn-simple {\n line-height: 1;\n &--xs {\n line-height: 1;\n }\n\n &--sm {\n line-height: 1;\n }\n\n &--lg {\n line-height: 1;\n }\n}\n\n.btn-group {\n margin-bottom: var(--margin3);\n justify-content: center;\n @media (max-width: $screen-sm-max) {\n flex-wrap: wrap;\n }\n\n [class*=\"btn\"] {\n @media (max-width: $screen-sm-max) {\n width: 100%;\n //display: block;\n margin: 0;\n margin-bottom: var(--margin-elements);\n }\n margin-right: var(--btn-group-separation);\n &:first-of-type {\n border-top-left-radius: var(--btn-simple-border-radius);\n border-bottom-left-radius: var(--btn-simple-border-radius);\n }\n &:last-child {\n border-top-right-radius: var(--btn-simple-border-radius);\n border-bottom-right-radius: var(--btn-simple-border-radius);\n margin-right: 0;\n }\n }\n}\n\n//Separación entre botones juntos\n.btn--block + .btn--block {\n margin-top: var(--btn-simple-mt);\n}\n\n.btn--block {\n padding-left: 0;\n padding-right: 0;\n}\n@import \"/src/components/atoms/BtnSimple/btn-simple.scss\";\n",".btn-simple {\n --btn-simple-padding: 21px 48px;\n --btn-simple-text-size: 14px;\n --btn-simple-mt: 10px;\n --btn-simple-border-radius: 0px;\n --btn-simple-transition-in: 0.2s;\n --btn-simple-transition-out: 0.2s;\n --btn-simple-padding-xs: 4px 5px;\n --btn-simple-text-size-xs: 10px;\n --btn-simple-padding-sm: 6px 10px;\n --btn-simple-text-size-sm: 12px;\n --btn-simple-padding-lg: 10px 18px;\n --btn-simple-text-size-lg: 18px;\n --btn-group-separation: 18px;\n}\n//@include generate-btn-simple(var(--name, $color, $bg, $color-hover, $bg-hover, $bg-active, $color-disabled, $bg-disabled));\n\n@include generate-btn-simple(1, white, var(--color-highlight), white, #444, #444, white, var(--color-disabled));\n@include generate-btn-simple(2, white, var(--color-danger), white, #444, #444, white, var(--color-disabled));\n\n@include generate-btn-simple(3, white, var(--color-info), white, #444, #444, white, var(--color-disabled));\n\nhtml {\n scroll-behavior: smooth;\n}\n\n.btn-simple {\n font-family: Avenir;\n font-size: 18px;\n border-radius: 50px;\n}\n\n.big-blob {\n position: absolute;\n top: 0;\n right: 0;\n width: 100vw;\n background: red;\n clip-path: url(#svgClipPathID);\n @media (max-width: $screen-xs-max) {\n display: none;\n }\n}\n\n#big-blob-svg,\n#small-blobs-svg {\n position: absolute;\n}\n\n.svg {\n position: absolute;\n width: 0;\n height: 0;\n}\n.hero {\n min-height: 60vh;\n}\n.big-blob {\n width: 70vw;\n height: 80%;\n background: linear-gradient(to bottom, var(--color-highlight), var(--color-bg-2));\n background-size: cover;\n clip-path: url(#big-blob);\n position: absolute;\n top: 0;\n right: 0;\n animation: move 10s ease-in-out infinite;\n translate: 20% -20%;\n z-index: -1;\n pointer-events: none;\n @media (max-width: $screen-xs-max) {\n width: 150vw;\n }\n}\n\n@keyframes move {\n 0% {\n transform: scale(1) translate(100px 100px);\n }\n 38% {\n transform: scale(1, 1.2) rotate(30deg);\n }\n 40% {\n transform: scale(1, 1.2) rotate(30deg);\n }\n 78% {\n transform: scale(1.2) rotate(-18deg);\n }\n 80% {\n transform: scale(1.2) rotate(-15deg);\n }\n 100% {\n transform: scale(1);\n }\n}\n\n.is-highlight {\n color: var(--color-highlight);\n -webkit-text-stroke-width: 1px;\n -webkit-text-stroke-color: white;\n @media (max-width: $screen-xs-max) {\n -webkit-text-stroke-width: 0;\n }\n}\n\n.header {\n position: static;\n top: 0;\n width: 100%;\n z-index: 9;\n padding: 12px 0;\n margin-bottom: 50px;\n // background: rgba(255, 255, 255, 0.1);\n // backdrop-filter: blur(7px);\n &__logo {\n width: 250px;\n }\n &__inner {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n &__links {\n flex-basis: 20%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n &__link {\n color: #fff;\n font-weight: bold;\n }\n}\n\n.hero {\n &__item {\n translate: 10% 0%;\n display: flex;\n height: 444px;\n position: relative;\n button {\n cursor: pointer;\n }\n svg {\n transition: 0.5s;\n height: 100px;\n width: 100px;\n fill: white;\n transform: rotate(180deg);\n stroke: var(--color-bg-2);\n }\n }\n .iframe-container {\n position: absolute;\n top: 60px;\n left: 338px;\n }\n}\n\nbody {\n overflow-x: hidden;\n font-family: \"Avenir\";\n}\n\n.img,\n.picture {\n width: 100%;\n max-width: 100%;\n}\n\n.container--center {\n text-align: center;\n}\n\n.rfm-marquee {\n img {\n height: 80px;\n margin-right: 50px;\n }\n}\n\n.path-0 {\n animation: pathAnim-0 30s;\n animation-timing-function: linear;\n animation-iteration-count: infinite;\n}\n@keyframes pathAnim-0 {\n 0% {\n d: path(\n \"M 0,400 L 0,0 C 70.08656818962555,31.90656131913432 140.1731363792511,63.81312263826864 206,94 C 271.8268636207489,124.18687736173136 333.3940226726211,152.65407076605976 395,174 C 456.6059773273789,195.34592923394024 518.2507729302645,209.57059429749228 597,216 C 675.7492270697355,222.42940570250772 771.6028856063207,221.06355204397113 849,206 C 926.3971143936793,190.93644795602887 985.3376846444523,162.17519752662318 1052,166 C 1118.6623153555477,169.82480247337682 1193.0463758158708,206.23565784953627 1259,184 C 1324.9536241841292,161.76434215046373 1382.4768120920646,80.88217107523187 1440,0 L 1440,400 L 0,400 Z\"\n );\n }\n 25% {\n d: path(\n \"M 0,400 L 0,0 C 72.55238749570594,27.38234283751288 145.1047749914119,54.76468567502576 212,96 C 278.8952250085881,137.23531432497424 340.13328753005845,192.32360013740984 406,186 C 471.86671246994155,179.67639986259016 542.3620748883546,111.94091377533492 605,100 C 667.6379251116454,88.05908622466508 722.4184129165235,131.91274476125042 787,166 C 851.5815870834765,200.08725523874958 925.9642734455515,224.40810717966335 996,216 C 1066.0357265544485,207.59189282033665 1131.724493301271,166.45482652009616 1205,125 C 1278.275506698729,83.54517347990382 1359.1377533493646,41.77258673995191 1440,0 L 1440,400 L 0,400 Z\"\n );\n }\n 50% {\n d: path(\n \"M 0,400 L 0,0 C 57.13500515286843,100.95499828237719 114.27001030573686,201.90999656475438 177,212 C 239.72998969426314,222.09000343524562 308.054963929921,141.31501202335966 391,121 C 473.945036070079,100.68498797664034 571.510133974579,140.82995534180696 649,138 C 726.489866025421,135.17004465819304 783.9045001717625,89.36516660941255 847,89 C 910.0954998282375,88.63483339058745 978.8718653383714,133.7093782205428 1042,172 C 1105.1281346616286,210.2906217794572 1162.608038474751,241.79732050841633 1228,212 C 1293.391961525249,182.20267949158367 1366.6959807626245,91.10133974579183 1440,0 L 1440,400 L 0,400 Z\"\n );\n }\n 75% {\n d: path(\n \"M 0,400 L 0,0 C 83.37890759189281,60.32566128478187 166.75781518378562,120.65132256956375 235,125 C 303.2421848162144,129.34867743043625 356.34764685675026,77.72037100652695 416,85 C 475.65235314324974,92.27962899347305 541.8515973892132,158.4671934043284 605,177 C 668.1484026107868,195.5328065956716 728.2459635863964,166.41085537615942 808,145 C 887.7540364136036,123.5891446238406 987.1645482652009,109.88938509103403 1063,138 C 1138.835451734799,166.11061490896597 1191.0958433527999,236.03160425970455 1250,220 C 1308.9041566472001,203.96839574029545 1374.4520783236,101.98419787014772 1440,0 L 1440,400 L 0,400 Z\"\n );\n }\n 100% {\n d: path(\n \"M 0,400 L 0,0 C 70.08656818962555,31.90656131913432 140.1731363792511,63.81312263826864 206,94 C 271.8268636207489,124.18687736173136 333.3940226726211,152.65407076605976 395,174 C 456.6059773273789,195.34592923394024 518.2507729302645,209.57059429749228 597,216 C 675.7492270697355,222.42940570250772 771.6028856063207,221.06355204397113 849,206 C 926.3971143936793,190.93644795602887 985.3376846444523,162.17519752662318 1052,166 C 1118.6623153555477,169.82480247337682 1193.0463758158708,206.23565784953627 1259,184 C 1324.9536241841292,161.76434215046373 1382.4768120920646,80.88217107523187 1440,0 L 1440,400 L 0,400 Z\"\n );\n }\n}\n\n.path-1 {\n animation: pathAnim-1 40s;\n animation-timing-function: linear;\n animation-iteration-count: infinite;\n}\n@keyframes pathAnim-1 {\n 0% {\n d: path(\n \"M 0,400 L 0,0 C 109.7129186602871,13.559808612440193 219.4258373205742,27.119617224880386 329,80 C 438.5741626794258,132.8803827751196 548.0095693779905,225.08133971291866 620,223 C 691.9904306220095,220.91866028708134 726.5358851674641,124.55502392344499 822,121 C 917.4641148325359,117.44497607655501 1073.8468899521529,206.69856459330143 1187,202 C 1300.1531100478471,197.30143540669857 1370.0765550239234,98.65071770334929 1440,0 L 1440,400 L 0,400 Z\"\n );\n }\n 25% {\n d: path(\n \"M 0,400 L 0,0 C 78.11483253588514,42.44019138755981 156.22966507177028,84.88038277511961 244,109 C 331.7703349282297,133.1196172248804 429.1961722488039,138.91866028708134 525,159 C 620.8038277511961,179.08133971291866 714.9856459330142,213.44497607655504 810,198 C 905.0143540669858,182.55502392344496 1000.8612440191389,117.30143540669856 1106,76 C 1211.138755980861,34.69856459330144 1325.5693779904304,17.34928229665072 1440,0 L 1440,400 L 0,400 Z\"\n );\n }\n 50% {\n d: path(\n \"M 0,400 L 0,0 C 116.71770334928232,56.631578947368425 233.43540669856463,113.26315789473685 330,131 C 426.56459330143537,148.73684210526315 502.97607655502384,127.57894736842105 598,116 C 693.0239234449762,104.42105263157895 806.6602870813398,102.42105263157895 891,101 C 975.3397129186602,99.57894736842105 1030.3827751196172,98.73684210526316 1117,82 C 1203.6172248803828,65.26315789473684 1321.8086124401914,32.63157894736842 1440,0 L 1440,400 L 0,400 Z\"\n );\n }\n 75% {\n d: path(\n \"M 0,400 L 0,0 C 66.13397129186606,79.11004784688996 132.26794258373212,158.2200956937799 247,185 C 361.7320574162679,211.7799043062201 525.0622009569377,186.22966507177034 622,153 C 718.9377990430623,119.77033492822967 749.4832535885168,78.86124401913877 824,92 C 898.5167464114832,105.13875598086123 1017.0047846889952,172.32535885167465 1127,166 C 1236.9952153110048,159.67464114832535 1338.4976076555024,79.83732057416267 1440,0 L 1440,400 L 0,400 Z\"\n );\n }\n 100% {\n d: path(\n \"M 0,400 L 0,0 C 109.7129186602871,13.559808612440193 219.4258373205742,27.119617224880386 329,80 C 438.5741626794258,132.8803827751196 548.0095693779905,225.08133971291866 620,223 C 691.9904306220095,220.91866028708134 726.5358851674641,124.55502392344499 822,121 C 917.4641148325359,117.44497607655501 1073.8468899521529,206.69856459330143 1187,202 C 1300.1531100478471,197.30143540669857 1370.0765550239234,98.65071770334929 1440,0 L 1440,400 L 0,400 Z\"\n );\n }\n}\n\n.iframe-container {\n position: relative;\n overflow: hidden;\n width: 100%;\n padding-top: 56.25%; /* 16:9 Aspect Ratio (divide 9 by 16 = 0.5625) */\n margin-bottom: 20px;\n}\n\n/* Then style the iframe to fit in the container div with full height and width */\n.iframe-container iframe {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n width: 100%;\n height: 100%;\n}\n\n.showcase {\n .showcase__video {\n position: absolute;\n // width: 43vw;\n // height: 24vw;\n left: 0;\n right: 0;\n margin: auto;\n bottom: 0;\n top: 0;\n @media (min-width: $screen-xs) {\n width: 40%;\n height: 50%;\n }\n @media (min-width: $screen-sm) {\n width: 340px;\n height: 190px;\n }\n @media (min-width: $screen-md) {\n width: 460px;\n height: 260px;\n }\n @media (min-width: $screen-lg) {\n width: 550px;\n height: 300px;\n }\n @media (min-width: $screen-xl) {\n width: 600px;\n height: 340px;\n }\n }\n}\n\n@function randomNum($min, $max) {\n $rand: random();\n $randomNum: $min + floor($rand * (($max - $min) + 1));\n\n @return $randomNum;\n}\n.blobs {\n min-height: 600px;\n position: relative;\n}\n.top-bloby,\n.bottom-bloby {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 150px;\n background: var(--color-highlight);\n border-radius: 0 0 100% 100%;\n animation: height #{randomNum(10, 20)}s ease-in-out infinite;\n}\n.bottom-bloby {\n top: auto;\n bottom: 0;\n border-radius: 100% 100% 0 0;\n}\n.bloby {\n position: absolute;\n top: 0;\n left: 0;\n fill: var(--color-highlight);\n width: #{randomNum(5, 10)}vw;\n z-index: -1;\n animation: movy 20s ease-in-out infinite;\n transform-origin: 50% 50%;\n transform: translate(5vw, -12vh);\n &:nth-child(1) {\n left: 5%;\n width: #{randomNum(10, 24)}vw;\n animation: movy #{randomNum(10, 20)}s ease-in-out infinite;\n }\n &:nth-child(2) {\n left: 25%;\n width: #{randomNum(4, 24)}vw;\n animation: movy2 #{randomNum(10, 20)}s ease-in-out infinite;\n }\n &:nth-child(3) {\n left: 35%;\n width: #{randomNum(5, 24)}vw;\n animation: movy3 #{randomNum(10, 20)}s ease-in-out infinite;\n }\n &:nth-child(4) {\n left: 45%;\n width: #{randomNum(5, 24)}vw;\n animation: movy2 #{randomNum(10, 20)}s ease-in-out infinite;\n }\n &:nth-child(5) {\n left: 55%;\n width: #{randomNum(5, 24)}vw;\n animation: movy #{randomNum(10, 20)}s ease-in-out infinite;\n }\n &:nth-child(6) {\n left: 65%;\n width: #{randomNum(6, 24)}vw;\n animation: movy3 #{randomNum(10, 20)}s ease-in-out infinite;\n }\n &:nth-child(7) {\n left: 75%;\n width: #{randomNum(2, 24)}vw;\n animation: movy2 #{randomNum(10, 20)}s ease-in-out infinite;\n }\n &:nth-child(8) {\n left: 85%;\n width: #{randomNum(1, 24)}vw;\n animation: movy #{randomNum(10, 20)}s ease-in-out infinite;\n }\n &:nth-child(9) {\n left: 95%;\n width: #{randomNum(2, 24)}vw;\n animation: movy3 #{randomNum(10, 20)}s ease-in-out infinite;\n }\n}\n$top: -10vw;\n$bottom: 30vw;\n\n@keyframes height {\n 0% {\n height: 10%;\n }\n\n 58% {\n height: 15px;\n }\n\n 100% {\n height: 10%;\n }\n}\n\n@keyframes movy {\n 0% {\n transform: scale(1) translate(0, $bottom) rotate(12deg);\n }\n 38% {\n transform: scale(1.4) translate(0, $top) rotate(#{randomNum(1, 45)}deg);\n }\n 58% {\n transform: scale(1) translate(0, $top) rotate(#{randomNum(1, 45)}deg);\n }\n 80% {\n transform: scale(1.4) translate(0, $top) rotate(#{randomNum(1, 45)}deg);\n }\n 100% {\n transform: scale(1) translate(0, $bottom) rotate(12deg);\n }\n}\n\n@keyframes movy2 {\n 0% {\n transform: scale(1) translate(0, $bottom) rotate(12deg);\n }\n 38% {\n transform: scale(1.4) translate(0, $top) rotate(#{randomNum(1, 45)}deg);\n }\n 58% {\n transform: scale(1) translate(0, $top) rotate(#{randomNum(1, 45)}deg);\n }\n 80% {\n transform: scale(1.4) translate(0, $top) rotate(#{randomNum(1, 45)}deg);\n }\n 100% {\n transform: scale(1) translate(0, $bottom) rotate(12deg);\n }\n}\n@keyframes movy3 {\n 0% {\n transform: scale(1) translate(0, $bottom) rotate(12deg);\n }\n 38% {\n transform: scale(1.4) translate(0, $top) rotate(#{randomNum(1, 45)}deg);\n }\n 58% {\n transform: scale(1) translate(0, $top) rotate(#{randomNum(1, 45)}deg);\n }\n 80% {\n transform: scale(1.4) translate(0, $top) rotate(#{randomNum(1, 45)}deg);\n }\n 100% {\n transform: scale(1) translate(0, $bottom) rotate(12deg);\n }\n}\n\n.download-links {\n display: flex;\n justify-content: space-around;\n margin-bottom: 70px;\n @media (max-width: $screen-xs-max) {\n display: block;\n }\n a {\n margin-bottom: 12px;\n }\n img {\n width: 100px;\n }\n li {\n display: flex;\n flex-direction: column-reverse;\n text-align: center;\n @media (max-width: $screen-xs-max) {\n margin-bottom: 64px;\n }\n }\n}\n\nsvg.logo .path {\n stroke-dasharray: 1320;\n stroke-dashoffset: 0;\n fill: #fff;\n animation: dash 60s linear alternate infinite;\n}\n@keyframes dash {\n 0% {\n stroke-dashoffset: 1320;\n fill: #fff;\n }\n 3% {\n stroke-dashoffset: 0;\n stroke-dasharray: 1320;\n fill: #fff;\n }\n 5% {\n stroke-dashoffset: 0;\n stroke-dasharray: 1320;\n\n fill: inherit;\n }\n 10% {\n stroke-dashoffset: 0;\n stroke-dasharray: 1320;\n\n fill: inherit;\n }\n 100% {\n stroke-dashoffset: 0;\n stroke-dasharray: 1320;\n\n fill: inherit;\n }\n}\n\n.text-line {\n stroke-dasharray: 500;\n stroke-dashoffset: 500;\n animation: dashfont 5s linear forwards, filling 5s ease-in forwards;\n font-size: 80px;\n}\n\n@keyframes dashfont {\n to {\n stroke-dashoffset: 0;\n }\n}\n\n@keyframes filling {\n 0%,\n 90% {\n fill: #bac736;\n fill-opacity: 0;\n }\n 100% {\n fill: #bac736;\n fill-opacity: 1;\n }\n}\n","//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n.btn-switch {\n position: relative;\n user-select: none;\n display: block;\n &__checkbox {\n display: none;\n }\n &__label {\n display: block;\n overflow: hidden;\n cursor: pointer;\n padding: 0;\n text-indent: -999em;\n }\n &__label:before {\n content: \"\";\n display: block;\n position: absolute;\n top: 0;\n bottom: 0;\n margin: 0px;\n }\n &__checkbox:checked + &__label:before {\n right: 0px;\n }\n}\n\n.btn-switch {\n width: var(--btn-switch-width);\n label.btn-switch__label {\n height: var(--btn-switch-height);\n line-height: var(--btn-switch-height);\n border: var(--btn-switch-bg-inactive-border) !important;\n border-radius: var(--btn-switch-height);\n background-color: var(--btn-switch-bg-inactive);\n transition: var(--btn-switch-transition-in);\n }\n &__label:before {\n width: var(--btn-switch-knob-width);\n height: var(--btn-switch-knob-width);\n top: var(--btn-switch-knob-top);\n background: var(--btn-switch-knob-bg);\n right: calc(\n var(--btn-switch-width) - var(--btn-switch-height) +\n var(--btn-switch-knob-top)\n );\n border: var(--btn-switch-knob-border-active);\n border-radius: var(--btn-switch-height);\n transition: var(--btn-switch-transition-out);\n box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.05), 0 2px 2px 0 rgba(0, 0, 0, 0.1),\n 0 3px 1px 0 rgba(0, 0, 0, 0.05);\n }\n &__checkbox:checked + &__label:before {\n right: var(--btn-switch-knob-top);\n }\n\n &__checkbox:checked + &__label {\n background-color: var(--btn-switch-bg-active);\n }\n &__checkbox:checked + &__label,\n &__checkbox:checked + &__label:before {\n border-color: var(--btn-switch-bg-active);\n border: var(--btn-switch-border !important);\n }\n}\n\n@import \"/src/components/atoms/BtnSwitch/btn-switch.scss\";\n",".btn-switch {\n --btn-switch-height: 30px;\n --btn-switch-width: calc(var(--btn-switch-height) * 2);\n --btn-switch-knob-width: calc(var(--btn-switch-height) - 2px);\n --btn-switch-knob-top: 0px;\n --btn-switch-knob-bg: white;\n --btn-switch-knob-border-active: 1px solid var(--color-border-1);\n --btn-switch-border: 1px solid var(--color-success);\n --btn-switch-transition-in: background-color 0.3s ease-in;\n --btn-switch-transition-out: all 0.3s ease-in 0s;\n --btn-switch-bg-active: var(--color-success);\n --btn-switch-bg-inactive: white;\n --btn-switch-bg-inactive-border: 1px solid var(--color-border-1);\n}\n","//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n\n// --------------------------------------------------\n// Tamaños\n// --------------------------------------------------\n\n// Comentado por incompatibilidad con IE11 y ya no ser necesario\n// Permitimos colorear los iconos\n// .icon use>svg path para solventar Firefox BUG\n//svg path,\n//.icon use>svg path {\n// fill: currentColor;\n//}\n\nsvg.icon.icon.icon {\n vertical-align: middle;\n &--xs {\n width: var(--icon-xs);\n height: var(--icon-xs);\n }\n\n &--sm {\n width: var(--icon-sm);\n height: var(--icon-sm);\n }\n\n &--md {\n width: var(--icon-md);\n height: var(--icon-md);\n }\n\n &--lg {\n width: var(--icon-lg);\n height: var(--icon-lg);\n }\n\n &--xl {\n width: var(--icon-xl);\n height: var(--icon-xl);\n }\n}\n\nsvg.icon {\n vertical-align: middle;\n}\n\n@import \"/src/components/atoms/Icon/icon.scss\";\n","//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n\n[class*=\"link-\"] {\n display: inline-table;\n}\n\n//Button reset to look like buttons\nbutton[class*=\"link-\"] {\n background: none;\n border-left: none;\n border-right: none;\n font-size: inherit;\n margin: 0;\n}\n\n//Reset links\na {\n text-decoration: none;\n color: inherit;\n}\n","//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n\n@mixin generate-link-simple(\n $name,\n $color,\n $color-hover,\n $color-disabled,\n $font-weight\n) {\n .link-simple--#{$name} {\n color: $color;\n font-weight: $font-weight;\n &:hover {\n color: $color-hover;\n }\n &:disabled {\n color: $color-disabled;\n }\n }\n}\n\n.link-simple {\n &:after {\n content: \"\";\n display: block;\n opacity: 0;\n }\n\n &:active,\n &.active,\n &:hover {\n &:after {\n content: \"\";\n display: block;\n opacity: 1;\n }\n }\n}\n\n.link-simple {\n transition: var(--link-simple-transition);\n text-decoration: none;\n padding-bottom: 3px;\n\n &:after {\n transition: var(--link-simple-transition);\n width: 1%;\n height: 2px;\n background: currentcolor;\n display: none !important;\n }\n\n &:active,\n &.active,\n &:hover {\n &:after {\n width: 100%;\n height: 2px;\n }\n }\n}\n","@import \"~getbasecore/src/components/atoms/Link/core_link.scss\";\n@import \"~getbasecore/src/components/atoms/LinkSimple/core_link-simple.scss\";\n\n.link-simple {\n --link-simple-transition: 0.5s;\n}\n\n// @mixin generate-link-simple($name, $color, $color-hover, $color-disabled, $font-weight){\n\n@include generate-link-simple(\n 1,\n var(--blue1),\n var(--blue2),\n var(--color-disabled),\n 700\n);\n",".embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n padding-bottom: 56.25%;\n &__item {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n }\n}\n","//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n\n// --------------------------------------------------\n// Tamaños\n// --------------------------------------------------\n\n// Comentado por incompatibilidad con IE11 y ya no ser necesario\n// Permitimos colorear los iconos\n// .icon use>svg path para solventar Firefox BUG\n//svg path,\n//.icon use>svg path {\n// fill: currentColor;\n//}\n\nsvg.icon.icon.icon {\n vertical-align: middle;\n &--xs {\n width: var(--icon-xs);\n height: var(--icon-xs);\n }\n\n &--sm {\n width: var(--icon-sm);\n height: var(--icon-sm);\n }\n\n &--md {\n width: var(--icon-md);\n height: var(--icon-md);\n }\n\n &--lg {\n width: var(--icon-lg);\n height: var(--icon-lg);\n }\n\n &--xl {\n width: var(--icon-xl);\n height: var(--icon-xl);\n }\n}\n\nsvg.icon {\n vertical-align: middle;\n}\n\n@import \"/src/components/atoms/Icon/icon.scss\";\n","//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n@import \"/src/global.scss\";\n@import \"~getbasecore/src/components/atoms/Icon/core_icon.scss\";\n.list {\n li {\n list-style-type: none;\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n //Con bullets\n &--bullets {\n li {\n position: relative;\n }\n & li:before {\n content: \"\";\n position: absolute;\n left: 0;\n }\n }\n\n //Con iconos\n &--icons {\n > * {\n display: table;\n position: relative;\n }\n\n &--xl > * {\n padding-left: calc(var(--icon-xl) + 10px);\n min-height: var(--icon-xl);\n .icon {\n @extend .icon--xl !optional;\n }\n }\n\n &--lg > * {\n padding-left: calc(var(--icon-lg) + 10px);\n min-height: var(--icon-lg);\n .icon {\n @extend .icon--lg !optional;\n }\n }\n &--md > * {\n padding-left: calc(var(--icon-md) + 10px);\n min-height: var(--icon-md);\n .icon {\n @extend .icon--md !optional;\n }\n }\n &--sm > * {\n padding-left: calc(var(--icon-sm) + 10px);\n min-height: var(--icon-sm);\n .icon {\n @extend .icon--sm !optional;\n }\n }\n &--xs > * {\n padding-left: calc(var(--icon-xs) + 10px);\n min-height: var(--icon-xs);\n .icon {\n @extend .icon--xs !optional;\n }\n }\n\n > * > div.text {\n display: table-cell;\n vertical-align: middle;\n }\n .icon {\n position: absolute;\n left: 0;\n top: 0;\n text-align: center;\n }\n }\n\n &--inline {\n display: inline-block;\n > li {\n display: inline-block;\n margin-bottom: 0;\n }\n }\n}\n\n.desc-list {\n dt {\n }\n dd {\n }\n\n &--horizontal {\n dt {\n float: left;\n text-align: right;\n overflow: hidden;\n clear: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n @media (max-width: $screen-xs-max) {\n float: none;\n text-align: left;\n }\n }\n }\n}\n\n//Order list\nol.list {\n counter-reset: section;\n\n li {\n list-style-type: none;\n position: relative;\n }\n\n li::before {\n content: counter(section);\n counter-increment: section;\n display: inline-block;\n position: absolute;\n }\n}\n\n.list {\n margin-bottom: var(--list-mb);\n\n li {\n margin-bottom: var(--list-li-mb);\n }\n\n //Con bullets\n &--bullets {\n li {\n padding-left: calc(var(--list-bullets-size) * 2);\n }\n & li:before {\n left: 0;\n top: var(--list-bullets-top);\n width: var(--list-bullets-size);\n height: var(--list-bullets-size);\n border-radius: 100%;\n background: var(--list-bullets-color);\n }\n }\n}\n\n.desc-list {\n margin-bottom: var(--desc-list-mb);\n dt {\n font-weight: bold;\n margin-bottom: var(--desc-list-dt-mb);\n }\n dd {\n margin-bottom: var(--desc-list-dd-mb);\n }\n\n &--horizontal {\n dt {\n width: var(--desc-list-dt-width);\n @media (max-width: $screen-xs-max) {\n width: 100%;\n }\n }\n\n dd {\n margin-left: calc(var(--desc-list-dt-width) + 20px);\n\n @media (max-width: $screen-xs-max) {\n margin-left: 0;\n }\n }\n }\n}\n\n//Order lists\nol.list {\n padding-left: var(--ol-padding);\n li::before {\n left: -var(--ol-padding);\n }\n}\n@import \"/src/components/atoms/List/list.scss\";\n",".list {\n --list-mb: var(--margin3);\n --list-li-mb: var(--margin2);\n --list-bullets-size: 6px;\n --list-bullets-top: 5px;\n --list-bullets-color: var(--color-bg-primary);\n --desc-list-mb: var(--margin1);\n --desc-list-dt-mb: 5px;\n --desc-list-dd-mb: var(--margin1);\n --desc-list-dt-width: 160px;\n --ol-padding: 0px;\n}\n\nol.list li::before {\n margin-right: 10px;\n position: static;\n}\n\nol.list {\n text-align: center;\n margin-bottom: 0;\n}\n","//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n//Loading circular\n.loader-circle {\n position: relative;\n text-indent: -9999em;\n transform: translateZ(0);\n animation: load8 1s infinite linear;\n}\n.loader-circle,\n.loader-circle:after {\n border-radius: 50%;\n}\n@-webkit-keyframes load8 {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes load8 {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.loader-circle {\n margin-bottom: var(--loader-circle-mb);\n font-size: 10px;\n border-top: var(--loader-circle-border) solid rgba(255, 255, 255, 0.2);\n border-right: var(--loader-circle-border) solid rgba(255, 255, 255, 0.2);\n border-bottom: var(--loader-circle-border) solid rgba(255, 255, 255, 0.2);\n border-left: var(--loader-circle-border) solid var(--loader-circle-color);\n}\n.loader-circle,\n.loader-circle:after {\n width: var(--loader-circle-diameter);\n height: var(--loader-circle-diameter);\n}\n\n@import \"/src/components/atoms/LoaderCircle/loader-circle.scss\";\n",".loader-circle {\n --loader-circle-diameter: 10rem;\n --loader-circle-border: 1.1rem;\n --loader-circle-color: var(--color-danger);\n --loader-circle-mb: var(--margin3);\n}\n","//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n@mixin generate-progress(\n $name,\n $progress-color,\n $progress-bg,\n $progress-value-bg\n) {\n .progress--#{$name} {\n &::-webkit-progress-bar {\n background-color: $progress-bg;\n }\n\n &::-webkit-progress-value {\n transition: width 1s;\n background-color: $progress-value-bg;\n }\n\n &::-moz-progress-bar {\n background-color: $progress-value-bg;\n }\n\n //legacy\n background-color: $progress-bg;\n\n span {\n background-color: $progress-value-bg;\n color: $progress-color;\n }\n }\n}\n\n.progress {\n width: 100%;\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border: none;\n\n //legacy progress value\n span {\n display: block;\n height: 100%;\n text-align: center;\n }\n}\n\n.progress {\n height: var(--progress-height);\n margin-bottom: var(--progress-mb);\n transition: var(--progress-transition);\n\n //legacy progress value\n span {\n font-size: var(--progress-font-size);\n line-height: var(--progress-height);\n }\n}\n\n@import \"/src/components/atoms/ProgressBar/progress-bar.scss\";\n",".progress {\n --progress-height: 20px;\n --progress-mb: var(--margin3);\n --progress-bg: var(--color-border-1);\n --progress-color: white;\n --progress-font-size: 12px;\n --progress-transition: width 0.6s ease;\n}\n\n// @mixin generate-progress($name, $progress-color, $progress-bg, $progress-value-bg)\n@include generate-progress(\n success,\n white,\n var(--progress-bg),\n var(--color-success)\n);\n","@import \"/src/global.scss\";\n.form--simple {\n label {\n margin-bottom: var(--form-label-mb);\n }\n\n .form__group {\n position: relative;\n // display: flex;\n // align-items: center;\n\n .form__help {\n float: right;\n font-size: var(--form-help-text-size);\n padding: var(--form-help-padding);\n }\n\n > .form__addon {\n border-radius: var(--form-control-border-radius);\n }\n\n .form__help {\n float: right;\n font-size: var(--form-help-text-size);\n padding: var(--form-help-padding);\n }\n\n &--success,\n &--info,\n &--warning,\n &--danger {\n }\n\n //Validaciones\n &--success {\n label,\n input,\n select,\n textarea {\n color: var(--color-success);\n border-color: var(--color-success);\n }\n .form__group__help {\n color: var(--color-success);\n }\n svg {\n fill: var(--color-success);\n }\n }\n &--info {\n label,\n input,\n select,\n textarea {\n background: var(--color-info);\n border-color: var(--color-info);\n }\n .form__group__help {\n color: var(--color-info);\n }\n svg {\n fill: var(--color-info);\n }\n }\n &--warning {\n label,\n input,\n select,\n textarea {\n color: var(--color-warning);\n border-color: var(--color-warning);\n }\n .form__group__help {\n color: var(--color-warning);\n }\n svg {\n fill: var(--color-warning);\n }\n }\n &--danger {\n label,\n input,\n select,\n textarea {\n color: var(--color-danger);\n border-color: var(--color-danger);\n }\n .form__group__help {\n color: var(--color-danger);\n }\n svg {\n fill: var(--color-danger);\n }\n }\n //icono validación\n .form__icon {\n top: var(--form-icon-top);\n svg {\n width: var(--form-icon-size);\n height: var(--form-icon-size);\n\n right: var(--form-icon-right);\n }\n }\n }\n\n .form__control,\n select,\n textarea {\n border: var(--form-control-border);\n border-radius: var(--form-control-border-radius);\n box-shadow: var(--form-control-box-shadow);\n padding: var(--form-control-padding);\n background: var(--form-control-bg);\n &:focus {\n background-color: var(--form-control-bg-hover);\n border: var(--form-control-border-hover);\n }\n }\n\n select {\n padding-right: 20px;\n background-color: var(--form-control-bg);\n appearance: none;\n\n &:focus {\n background: var(--form-control-bg-hover);\n border: var(--form-control-border-hover);\n }\n }\n\n // svg {\n // position: absolute;\n // right: 12px;\n // width: 19px;\n // height: 19px;\n // }\n}\n\n.form--simple {\n margin-bottom: var(--form-mb);\n\n label {\n margin-bottom: var(--form-label-mb);\n }\n\n input + label {\n margin-bottom: 0;\n }\n\n .form__group {\n .form__help {\n float: right;\n font-size: var(--form-help-text-size);\n padding: var(--form-help-padding);\n }\n\n > .form__addon {\n padding: 0 20px;\n border-radius: var(--form-control-border-radius);\n margin-bottom: 0;\n }\n\n .form__help {\n float: right;\n font-size: var(--form-help-text-size);\n padding: var(--form-help-padding);\n }\n\n &--success,\n &--info,\n &--warning,\n &--danger {\n }\n\n //Validaciones\n &--success {\n label,\n input,\n select,\n textarea {\n color: var(--color-success);\n border-color: var(--color-success);\n }\n .form__group__help,\n .form__error {\n color: var(--color-success);\n }\n svg {\n fill: var(--color-success);\n }\n }\n &--info {\n label,\n input,\n select,\n textarea {\n background: var(--color-info);\n border-color: var(--color-info);\n }\n .form__group__help,\n .form__error {\n color: var(--color-info);\n }\n svg {\n fill: var(--color-info);\n }\n }\n &--warning {\n label,\n input,\n select,\n textarea {\n color: var(--color-warning);\n border-color: var(--color-warning);\n }\n .form__group__help,\n .form__error {\n color: var(--color-warning);\n }\n svg {\n fill: var(--color-warning);\n }\n }\n &--danger {\n label,\n input,\n select,\n textarea {\n color: var(--color-danger);\n border-color: var(--color-danger);\n }\n .form__group__help,\n .form__error {\n color: var(--color-danger);\n }\n svg {\n fill: var(--color-danger);\n }\n }\n //icono validación\n .form__icon {\n top: var(--form-icon-top);\n svg {\n width: var(--form-icon-size);\n height: var(--form-icon-size);\n\n right: var(--form-icon-right);\n }\n }\n }\n\n .form__control,\n select,\n textarea {\n border: var(--form-control-border);\n border-radius: var(--form-control-border-radius);\n box-shadow: var(--form-control-box-shadow);\n padding: var(--form-control-padding);\n background: var(--form-control-bg);\n &:focus {\n background-color: var(--form-control-bg-hover);\n border: var(--form-control-border-hover);\n }\n }\n\n select {\n padding-right: 40px;\n background: var(--form-select-caret) no-repeat;\n background-size: 100% 100%;\n background-color: var(--form-control-bg);\n background-size: var(--form-select-caret-size) var(--form-select-caret-size);\n background-position: var(--form-select-caret-position);\n -moz-appearance: none;\n &:focus {\n background: var(--form-select-caret) no-repeat;\n background-size: 100% 100%;\n background-size: var(--form-select-caret-size)\n var(--form-select-caret-size);\n background-position: var(--form-select-caret-position);\n\n background-color: var(--form-control-bg-hover);\n border: var(--form-control-border-hover);\n }\n }\n}\n\n@import \"/src/components/atoms/FormInputSimple/form-input-simple.scss\";\n",".form--simple {\n --form-control-border: 1px solid var(--brown-grey);\n --form-mb: var(--margin3);\n --form-label-mb: var(--margin1);\n --form-control-border-radius: 0;\n --form-control-padding: 4px 10px;\n --form-control-box-shadow: none;\n --form-control-bg: white;\n --form-control-border-hover: 1px solid var(--blue1);\n --form-control-bg-hover: white;\n\n --form-help-padding: 12px 0;\n --form-help-text-size: 12px;\n\n --form-icon-size: 32px;\n --form-icon-right: 10px;\n --form-icon-top: 25px;\n --form-select-caret: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxMCIgdmlld0JveD0iMCAwIDE2IDEwIj4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgZmlsbD0iIzY2NiI+CiAgICAgICAgICAgIDxnPgogICAgICAgICAgICAgICAgPGc+CiAgICAgICAgICAgICAgICAgICAgPGc+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zLjkxNyA4Ljg4TDUuODc1IDcgMTEuNzUgMTIuNjQyIDE3LjYyNSA3LjAwMiAxOS41ODMgOC44ODIgMTEuNzUgMTYuNDAyeiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTU2OSAtMTQ5NikgdHJhbnNsYXRlKDExMiAxMDgxKSB0cmFuc2xhdGUoMjYyIDM5MSkgdHJhbnNsYXRlKDE5MS4xMzUgMTcpIi8+CiAgICAgICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4K\");\n --form-select-caret-size: 16px;\n --form-select-caret-position: right 12px center;\n}\n","@import \"/src/global.scss\";\n//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n// --------------------------------------------------\n// Radio\n// --------------------------------------------------\n\n.form__group > .radio-simple {\n user-select: none;\n cursor: pointer;\n display: inline-block;\n\n input {\n @include show-sr();\n }\n\n // Unchecked\n label {\n position: relative !important;\n cursor: pointer;\n pointer-events: all;\n //Unset sr-only\n position: relative;\n width: auto;\n height: auto;\n padding: auto;\n margin: auto;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: auto;\n\n &:before {\n position: absolute;\n content: \"\";\n display: inline-block;\n box-sizing: border-box;\n }\n &:after {\n position: absolute;\n content: \"\";\n display: inline-block;\n border-radius: 100%;\n opacity: 0;\n box-sizing: border-box;\n }\n }\n\n //Checked\n input:checked + label {\n &:before {\n }\n &:after {\n opacity: 1;\n }\n }\n}\n\n// --------------------------------------------------\n// Mixin tamaños de radios\n// --------------------------------------------------\n\n@mixin radio-simple-sizes($size, $radio-simple-size) {\n .radio-simple--#{$size} {\n // Unchecked\n label {\n padding-left: $radio-simple-size + $radio-simple-size/2;\n line-height: $radio-simple-size;\n //Borde exterior\n &:before {\n left: 0;\n width: $radio-simple-size;\n height: $radio-simple-size;\n }\n //Elemento interior\n &:after {\n left: $radio-simple-size/2;\n top: $radio-simple-size/2;\n }\n }\n\n //Checked\n input:checked + label {\n //Elemento interior\n &:after {\n left: $radio-simple-size/8;\n top: $radio-simple-size/8;\n width: $radio-simple-size - $radio-simple-size/4;\n height: $radio-simple-size - $radio-simple-size/4;\n }\n }\n }\n}\n\n.form__group > .radio-simple {\n & + .radio-simple {\n margin-top: var(--margin1);\n }\n\n input:focus + label:before {\n border: var(--radio-simple-fosus);\n }\n\n // Unchecked\n label {\n padding-left: calc(var(--radio-simple-size) + var(--radio-simple-size) / 2);\n\n line-height: var(--radio-simple-size);\n\n //Unset sr-only\n position: relative;\n width: auto;\n height: auto;\n padding: auto;\n margin: auto;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: auto;\n\n //Borde exterior\n &:before {\n left: 0;\n width: var(--radio-simple-size);\n height: var(--radio-simple-size);\n border: var(--radio-simple-border);\n border-radius: 100%;\n }\n //Elemento interior\n &:after {\n left: var(--radio-simple-size/2);\n top: var(--radio-simple-size/2);\n width: 2px;\n height: 2px;\n background: var(--radio-simple-inner-bg);\n border-radius: 100%;\n transition: var(--radio-simple-inner-transition-uncheck);\n }\n }\n\n //Checked\n input:checked + label {\n //Borde exterior\n &:before {\n }\n //Elemento interior\n &:after {\n left: var(--radio-simple-inner-left);\n top: var(--radio-simple-inner-left);\n width: var(--radio-simple-inner-width);\n height: var(--radio-simple-inner-width);\n background: var(--radio-simple-inner-bg);\n border-radius: 100%;\n transform-origin: center;\n transition: var(--radio-simple-inner-transition-check);\n }\n }\n}\n\n@import \"/src/components/atoms/FormRadioSimple/form-radio-simple.scss\";\n","//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n// ----------------------------------------------------------------------------------------------------\n//\n// Mixins\n//\n// -----------------------------------------------------------------------------------------------------\n\n/*\nText truncate\n*/\n@mixin text-truncate() {\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/*\n\nScreen reader only\n\n*/\n\n@mixin show-sr() {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n\n/*\nImg no responsive \n*/\n@mixin img-no-responsive() {\n width: auto;\n max-width: auto;\n}\n\n/*\nSafari Flicker Fix\n*/\n\n@mixin webkit-anim-fix() {\n -webkit-transform: translate3d(0, 0, 0);\n}\n\n/*\nClean last margin\n*/\n\n@mixin clean-last-margin() {\n *:last-child {\n margin-bottom: 0 !important;\n }\n}\n","// --------------------------------------------------\n// Radio\n// --------------------------------------------------\n.radio-simple {\n --radio-simple-size: 16px;\n --radio-simple-size-xs: 10px;\n --radio-simple-size-sm: 15px;\n --radio-simple-size-lg: 30px;\n --radio-simple-border: 1px solid var(--grey1);\n --radio-simple-fosus: 1px solid var(--grey1);\n --radio-simple-inner-width: 8px;\n --radio-simple-inner-left: 4px;\n --radio-simple-inner-top: 4px;\n --radio-simple-inner-bg: var(--blue1);\n --radio-simple-inner-transition-check: all 0.2s ease-in-out;\n --radio-simple-inner-transition-uncheck: all 0.2s ease-in-out;\n}\n@include radio-simple-sizes(xs, var(--radio-simple-size-xs));\n@include radio-simple-sizes(sm, var(--radio-simple-size-sm));\n@include radio-simple-sizes(lg, var(--radio-simple-size-lg));\n","@import \"/src/global.scss\";\n//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n// --------------------------------------------------\n// Checkbox\n// --------------------------------------------------\n\n.checkbox-simple {\n user-select: none;\n cursor: pointer;\n display: inline-block;\n input {\n @include show-sr();\n }\n\n // Unchecked\n label {\n position: relative;\n cursor: pointer;\n &:before {\n position: absolute;\n content: \"\";\n display: inline-block;\n box-sizing: border-box;\n }\n &:after {\n position: absolute;\n content: \"\";\n display: inline-block;\n border-radius: 100%;\n opacity: 0;\n box-sizing: border-box;\n }\n }\n\n //Checked\n input:checked + label {\n &:before {\n }\n &:after {\n opacity: 1;\n }\n }\n}\n\n// --------------------------------------------------\n// Mixin tamaños de checkboxes\n// --------------------------------------------------\n\n@mixin checkbox-simple-sizes($size, $checkbox-simple-size) {\n .checkbox-simple--#{$size} {\n // Unchecked\n label {\n padding-left: $checkbox-simple-size + $checkbox-simple-size/2;\n line-height: $checkbox-simple-size;\n //Borde exterior\n &:before {\n width: $checkbox-simple-size;\n height: $checkbox-simple-size;\n }\n //Elemento interior\n &:after {\n left: $checkbox-simple-size/2;\n top: $checkbox-simple-size/2;\n }\n }\n\n //Checked\n input:checked + label {\n //Elemento interior\n &:after {\n width: $checkbox-simple-size;\n height: $checkbox-simple-size;\n }\n }\n }\n}\n\n.form__group > .checkbox-simple {\n .form--inline & {\n display: inline-block;\n vertical-align: middle;\n margin: 0;\n }\n\n input:focus + label:before {\n border: var(--checkbox-simple-focus);\n }\n\n // Unchecked\n label {\n padding-left: calc(\n var(--checkbox-simple-size) + var(--checkbox-simple-size) / 2\n );\n line-height: var(--checkbox-simple-size);\n\n //Borde exterior\n &:before {\n left: 0;\n width: var(--checkbox-simple-size);\n height: var(--checkbox-simple-size);\n border: var(--checkbox-simple-border);\n\n border-radius: 0px;\n }\n //Elemento interior\n &:after {\n top: 4px;\n left: 4px;\n width: 1px;\n height: 1px;\n\n transition: var(--checkbox-simple-inner-transition-uncheck);\n }\n }\n\n //Checked\n\n input:checked + label {\n //Borde exterior\n &:before {\n border: var(--checkbox-simple-border-check);\n background: var(--checkbox-simple-inner-bg-check);\n }\n //Elemento interior\n &:after {\n top: -2px;\n left: 0px;\n width: var(--checkbox-simple-size);\n height: var(--checkbox-simple-size);\n border-radius: 0;\n background: var(--checkbox-simple-tick) no-repeat;\n background-size: 100% 100%;\n\n transition: var(--checkbox-simple-inner-transition-check);\n }\n }\n}\n\n//@mixin checkbox-simple-sizes(var(--size,$checkbox-simple-size));\n\n@include checkbox-simple-sizes(xs, var(--checkbox-simple-size-xs));\n@include checkbox-simple-sizes(sm, var(--checkbox-simple-size-sm));\n@include checkbox-simple-sizes(lg, var(--checkbox-simple-size-lg));\n\n@import \"/src/components/atoms/FormCheckboxSimple/form-checkbox-simple.scss\";\n","// --------------------------------------------------\n// Checkbox\n// --------------------------------------------------\n.checkbox-simple {\n --checkbox-simple-size: 20px;\n --checkbox-simple-size-xs: 10px;\n --checkbox-simple-size-sm: 15px;\n --checkbox-simple-size-lg: 30px;\n --checkbox-simple-border: 1px solid var(--grey1);\n --checkbox-simple-border-check: var(--checkbox-simple-border);\n --checkbox-simple-focus: 1px solid var(--grey1);\n --checkbox-simple-inner-bg: #fff;\n --checkbox-simple-inner-bg-check: var(--checkbox-simple-inner-bg);\n --checkbox-simple-inner-transition-check: opacity 0.4s ease-in-out;\n --checkbox-simple-inner-transition-uncheck: opacity 0.4s ease-in-out;\n --checkbox-simple-tick: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4gICAgPGcgZmlsbD0iYXV0byIgZmlsbC1ydWxlPSJldmVub2RkIj4gICAgICAgIDxwYXRoIGZpbGw9ImF1dG8iIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTEwLjUzNiAxNi4xOTJsNi4zNjMtNi4zNjRhMSAxIDAgMSAxIDEuNDE1IDEuNDE1bC03LjA3MSA3LjA3YTEgMSAwIDAgMS0xLjQxNSAwbC0zLjUzNS0zLjUzNWExIDEgMCAwIDEgMS40MTQtMS40MTRsMi44MjkgMi44Mjh6Ii8+ICAgIDwvZz48L3N2Zz4=\");\n}\n","@mixin generate-track() {\n height: var(--form-slider-track-height);\n cursor: pointer;\n transition: var(--form-slider-track-transition);\n background: var(--form-slider-track-bg);\n border-radius: 0;\n}\n\n@mixin generate-thumb() {\n border: 0;\n height: var(--form-slider-thumb-size);\n width: var(--form-slider-thumb-size);\n box-sizing: border-box;\n max-height: var(--form-slider-thumb-size);\n max-width: var(--form-slider-thumb-size);\n border-radius: 100%;\n border: var(--form-slider-thumb-border-size) solid\n var(--form-slider-thumb-border-color);\n background: var(--form-slider-thumb-bg);\n cursor: pointer;\n -webkit-appearance: none;\n\n margin-top: calc(\n ((var(--form-slider-track-height)) / 2) -\n (var(--form-slider-thumb-size) / 2)\n );\n\n box-shadow: var(--form-slider-thumb-shadow);\n}\n\ninput[type=\"range\"] {\n padding: 0 !important;\n\n &::-webkit-slider-runnable-track {\n @include generate-track();\n }\n\n &::-webkit-slider-thumb {\n @include generate-thumb();\n }\n\n &:focus::-webkit-slider-runnable-track {\n background: var(--form-slider-track-bg-hover);\n }\n\n &::-moz-range-track {\n @include generate-track();\n }\n\n &::-moz-range-thumb {\n @include generate-thumb();\n }\n\n &::-ms-track {\n @include generate-track();\n }\n //\n // &::-ms-fill-lower {\n // background: darken($track-color, $contrast);\n // border: $track-border-width solid $track-border-color;\n // border-radius: $track-radius * 2;\n // }\n //\n // &::-ms-fill-upper {\n // background: $track-color;\n // border: $track-border-width solid $track-border-color;\n // border-radius: $track-radius * 2;\n // }\n //\n &::-ms-thumb {\n @include generate-thumb();\n }\n //\n // &:focus::-ms-fill-lower {\n // background: $track-color;\n // }\n //\n // &:focus::-ms-fill-upper {\n // background: lighten($track-color, $contrast);\n // }\n}\n\n@import \"/src/components/atoms/FormInputRangeSimple/form-input-range-simple.scss\";\n","input[type=\"range\"] {\n --form-slider-track-height: 10px;\n --form-slider-track-bg: var(--grey3);\n --form-slider-track-bg-hover: var(--grey3);\n --form-slider-track-border-radius: 0;\n --form-slider-track-transition: all 0.2s ease;\n --form-slider-thumb-size: 30px;\n --form-slider-thumb-border-size: 0px;\n --form-slider-thumb-bg: var(--blue1);\n --form-slider-thumb-border-color: green;\n --form-slider-thumb-border-radius: 100%;\n --form-slider-thumb-shadow: black;\n}\n",".section {\n --color-content: var(--color-highlight);\n}\n.section {\n // padding-bottom: 32px;\n\n &--dark {\n .section__content {\n padding-bottom: 100px;\n }\n svg {\n fill: #222;\n }\n .section__content {\n background: #222;\n &:before {\n background: #222;\n }\n }\n }\n\n &--early {\n .section__content {\n padding-top: 100px;\n }\n .h1,\n .h2,\n .h3,\n .h4,\n ol,\n li,\n p {\n color: var(--color-text-2) !important;\n }\n svg {\n fill: rgb(251, 225, 109);\n }\n .section__content {\n background: var(--color-bg-5);\n &:before {\n background: var(--color-bg-5);\n }\n }\n }\n\n &--igg {\n .section__content {\n padding-top: 100px;\n }\n .h1,\n .h2,\n .h3,\n .h4,\n ol,\n li,\n p {\n color: var(--white) !important;\n }\n svg {\n fill: rgb(251, 225, 109);\n }\n .section__content {\n background: var(--color-bg-6);\n &:before {\n background: var(--color-bg-6);\n }\n }\n }\n\n &__wave {\n fill: var(--color-content);\n }\n\n &__content {\n background: var(--color-content);\n color: #fff;\n position: relative;\n &:before {\n content: \"\";\n background: var(--color-content);\n height: 8px;\n width: 100%;\n display: block;\n position: absolute;\n top: -8px;\n }\n }\n\n .h1,\n .h2,\n .h3,\n .h4,\n p {\n color: #fff;\n text-align: center;\n }\n}\n\n.lamp {\n display: none !important;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n height: 100vh;\n height: 100vh;\n width: 100vw;\n min-width: 100vw;\n z-index: -1;\n}\n\n.lava {\n filter: url(\"#goo\");\n position: absolute;\n height: 100%;\n width: 100%;\n top: 0;\n left: 0;\n}\n\n.blob {\n border-radius: 50%;\n background: var(--color-highlight);\n\n /* Other sample colors:\n\tOrange: #e8630a\n\tPink: #EA3281\n\tFuscia: #E71669\n\tPurple: #661BAC\n\tYellow: #FDC600\n\tKermit green: #75AC25\n\tLight blue: #3283B5\n\tDark blue: #0A5D9A\n\tGunmetal: #232F37\n\tBGLight: #1B2735\n\tBGDark: #090a0f\n\tWant more colors? check out https://coolors.co/ for inspiration.\n\t*/\n position: absolute;\n}\n\n.blob.top {\n border-radius: 50%;\n width: 100%;\n height: 4%;\n top: -3%;\n left: 0;\n}\n.blob.bottom {\n border-radius: 50%;\n width: 100%;\n height: 4%;\n bottom: -3%;\n left: 0;\n}\n.blob:nth-child(1) {\n width: 200px;\n height: 200px;\n left: 35%;\n bottom: -15%;\n\n animation: wobble 4s ease-in-out alternate infinite, blob-one ease-in-out 13s infinite;\n}\n.blob:nth-child(2) {\n width: 330px;\n height: 330px;\n right: 24%;\n bottom: -65%;\n\n animation: wobble 5s ease-in-out alternate infinite, blob-two ease-in-out 22s infinite;\n}\n.blob:nth-child(3) {\n width: 150px;\n height: 150px;\n bottom: -15%;\n left: 34%;\n\n animation: wobble 6s ease-in-out alternate infinite, blob-three ease-in-out 16s infinite;\n}\n.blob:nth-child(4) {\n width: 235px;\n height: 235px;\n bottom: -19%;\n left: 30%;\n\n animation: wobble 7s ease-in-out alternate infinite, blob-four ease-in-out 12s infinite;\n}\n.blob:nth-child(4) {\n width: 235px;\n height: 235px;\n bottom: -19%;\n left: 30%;\n animation: wobble 8s ease-in-out alternate infinite, blob-four ease-in-out 12s infinite;\n}\n.blob:nth-child(5) {\n width: 55px;\n height: 55px;\n bottom: -25%;\n left: 34%;\n\n animation: wobble 9s ease-in-out alternate infinite, blob-five ease-in-out 32s infinite;\n}\n.blob:nth-child(6) {\n width: 35px;\n height: 35px;\n bottom: -25%;\n right: 34%;\n\n animation: wobble 10s ease-in-out alternate infinite, blob-six ease-in-out 12s infinite;\n}\n.blob:nth-child(7) {\n width: 435px;\n height: 435px;\n bottom: -85%;\n right: 40%;\n\n animation: wobble 11s ease-in-out alternate infinite, blob-seven ease-in-out 32s infinite;\n}\n@keyframes blob-one {\n 0%,\n 100% {\n transform: translatey(0);\n }\n 50% {\n transform: translatey(-700%);\n }\n}\n\n@keyframes blob-two {\n 0%,\n 100% {\n transform: translatey(0);\n }\n 50% {\n transform: translatey(-420%);\n }\n}\n\n@keyframes blob-three {\n 0%,\n 100% {\n transform: translatey(0);\n }\n 50% {\n transform: translatey(-305%);\n }\n}\n@keyframes blob-four {\n 0%,\n 100% {\n transform: translatey(0);\n }\n 50% {\n transform: translatey(-605%);\n }\n}\n@keyframes blob-five {\n 0%,\n 100% {\n transform: translatey(0);\n }\n 50% {\n transform: translatey(-700%);\n }\n}\n@keyframes blob-six {\n 0%,\n 100% {\n transform: translatey(0);\n }\n 50% {\n transform: translatey(-700%);\n }\n}\n@keyframes blob-seven {\n 0%,\n 100% {\n transform: translatey(0);\n }\n 50% {\n transform: translatey(-300%);\n }\n}\n\n@keyframes wobble {\n 50% {\n border-radius: 42% 58% 70% 30% / 45% 45% 55% 55%;\n }\n 100% {\n border-radius: 38% 52% 75% 36% / 50% 40% 50% 60%;\n }\n}\n","//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n\n.modal {\n z-index: 99;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100vw;\n height: 100vh;\n margin: auto;\n transition: var(--modal-transition);\n background-color: var(--modal-background);\n backdrop-filter: var(--modal-background-filter);\n opacity: 0;\n pointer-events: none;\n display: flex;\n justify-content: center;\n align-items: center;\n &.is-shown {\n opacity: 1;\n transition: var(--modal-transition);\n pointer-events: all;\n .modal__box {\n margin-bottom: 0;\n transition: var(--modal-transition);\n }\n }\n\n &__box {\n -webkit-app-region: no-drag;\n margin-bottom: var(--modal-box-initial-position);\n background: var(--modal-box-background);\n border-radius: var(--modal-box-radius);\n padding: var(--modal-box-padding);\n display: flex;\n flex-direction: column;\n border: var(--modal-box-border);\n }\n\n &__header {\n margin-bottom: var(--modal-header-mb);\n position: relative;\n }\n &__close {\n position: absolute;\n top: 0;\n right: 0;\n line-height: 0;\n }\n &__body {\n flex: 1;\n max-height: 50vh;\n overflow: auto;\n margin-bottom: var(--modal-body-mb);\n }\n &__footer {\n text-align: var(--modal-footer-align);\n .btn-simple {\n margin-bottom: 0;\n }\n }\n &--xs {\n .modal__box {\n max-width: var(--modal-xs-width);\n max-height: var(--modal-xs-height);\n }\n }\n &--sm {\n .modal__box {\n width: var(--modal-sm-width);\n }\n }\n &--full {\n .modal__header {\n display: none;\n }\n .modal__box {\n padding: 0;\n width: 100vw;\n height: 100vh;\n border: 0;\n }\n .modal__body {\n max-height: 100%;\n overflow: hidden;\n }\n .modal__footer {\n display: none;\n }\n }\n}\n\n@import \"./modal.scss\";\n",".modal {\n --modal-transition: 0.5s;\n --modal-background: rgba(255, 255, 255, 0.1);\n --modal-background-filter: blur(10px);\n --modal-box-initial-position: -200vh;\n --modal-box-background: #fff;\n --modal-box-radius: 8px;\n --modal-box-padding: 20px;\n --modal-box-border: 1px solid #cbcbcb;\n --modal-header-mb: 24px;\n --modal-body-mb: 24px;\n --modal-footer-align: center;\n --modal-xs-width: 40vw;\n --modal-xs-height: 80vh;\n --modal-sm-width: 50vw;\n}\n\n.modal__close {\n line-height: inherit;\n color: #fff;\n font-size: 2rem;\n top: 0.6rem;\n right: 1rem;\n}\n\n.modal--windows {\n .modal__box {\n padding: 0;\n width: 75vw;\n overflow: hidden;\n }\n .modal__header {\n text-align: center;\n padding: 20px 0;\n background: #222;\n .h4 {\n color: #fff;\n margin-bottom: 0;\n }\n }\n .modal__body {\n padding: 0 20px;\n display: flex;\n @media (max-width: 767px) {\n display: block;\n }\n justify-content: space-around;\n max-height: 80vh;\n text-align: center;\n & > div {\n flex-basis: 50%;\n }\n @media (max-width: 767px) {\n & > div + div {\n margin-top: 50px;\n }\n }\n .btn-simple {\n margin-bottom: 0;\n }\n }\n}\n","// ----------------------------------------------------------------------------------------------------\n//\n// CSS Reset\n//\n// -----------------------------------------------------------------------------------------------------\n\n/* http://meyerweb.com/eric/tools/css/reset/ \n v2.0 | 20110126\n License: none (public domain)\n*/\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n/* HTML5 display-role reset for older browsers */\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\nsection {\n display: block;\n}\nbody {\n line-height: 1;\n}\nol,\nul {\n list-style: none;\n}\nblockquote,\nq {\n quotes: none;\n}\nblockquote:before,\nblockquote:after,\nq:before,\nq:after {\n content: \"\";\n content: none;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\n// --------------------------------------------------\n// Firefox buttons\n// --------------------------------------------------\n\n::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n// --------------------------------------------------\n// Webkit Input Number Fix\n// --------------------------------------------------\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\n// --------------------------------------------------\n// Fix input appearence on iOS\n// --------------------------------------------------\ninput,\ntextarea,\nselect {\n -webkit-appearance: none;\n}\n\n// --------------------------------------------------\n// Outline Fix\n// --------------------------------------------------\na:focus,\na:active,\nbutton::-moz-focus-inner,\ninput[type=\"reset\"]::-moz-focus-inner,\ninput[type=\"button\"]::-moz-focus-inner,\ninput[type=\"submit\"]::-moz-focus-inner,\nselect::-moz-focus-inner,\ninput[type=\"file\"] > input[type=\"button\"]::-moz-focus-inner {\n border: 0;\n outline: 0;\n}\n\n// --------------------------------------------------\n// Fix \"highlight color click\" en iOS\n// --------------------------------------------------\n* {\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\n// --------------------------------------------------\n// Firefox hiding number spinner button\n// --------------------------------------------------\n\ninput[type=\"number\"]::-webkit-outer-spin-button,\ninput[type=\"number\"]::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\ninput[type=\"number\"] {\n -moz-appearance: textfield;\n}\n\n// --------------------------------------------------\n// iPhone X Notch\n// --------------------------------------------------\n@media only screen and (orientation: landscape) {\n .wrapper {\n padding-left: env(safe-area-inset-left);\n padding-right: env(safe-area-inset-right);\n }\n}\n\n// --------------------------------------------------\n// Content render improvement\n// --------------------------------------------------\nsection {\n content-visibility: auto;\n contain-intrinsic-size: 100vh;\n}\n\n//https://www.smashingmagazine.com/2013/03/tips-and-tricks-for-print-style-sheets/\n@media print {\n @page {\n margin: 2cm;\n }\n\n *,\n *:before,\n *:after,\n *:first-letter,\n p:first-line,\n div:first-line,\n blockquote:first-line,\n li:first-line {\n background: transparent !important;\n color: #000 !important;\n box-shadow: none !important;\n text-shadow: none !important;\n }\n\n body {\n color: #000;\n background: #fff;\n }\n\n footer {\n display: none;\n }\n\n img {\n max-width: 100% !important;\n }\n\n * {\n page-break-inside: avoid;\n }\n\n a[href^=\"http\"]:after {\n content: \" <\" attr(href) \"> \";\n }\n\n a[href^=\"#\"]:after {\n content: \"\";\n }\n}\n\n@media print and (color) {\n * {\n -webkit-print-color-adjust: exact !important;\n print-color-adjust: exact !important;\n }\n}\n","//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n* {\n box-sizing: border-box;\n}\n@import \"/src/utils/grid-layout/grid-layout.scss\";\n\n.container {\n padding-right: calc(var(--grid-gutter) / 2);\n padding-left: calc(var(--grid-gutter) / 2);\n margin-right: auto;\n margin-left: auto;\n min-width: 320px;\n transition: width 0.4s;\n @media (min-width: $screen-sm) {\n width: var(--container-sm);\n }\n\n @media (min-width: $screen-md) {\n width: var(--container-md);\n }\n\n @media (min-width: $screen-lg) {\n width: var(--container-lg);\n }\n\n @media (min-width: $screen-xl) {\n width: var(--container-xl);\n }\n\n &--fluid {\n width: 100%;\n padding: 0;\n }\n\n &--mixed {\n width: 100%;\n max-width: var(--container-grid-mixed-width);\n padding: 0;\n display: block;\n }\n}\n\n.container--grid {\n display: grid;\n grid-template-columns: repeat($columns, minmax(0, 1fr));\n grid-column-gap: var(--grid-gutter);\n\n @media (max-width: $screen-xs-max) {\n grid-template-columns: repeat($columns-xs, minmax(0, 1fr));\n }\n\n > * {\n grid-column-end: span $columns;\n @media (max-width: $screen-xs-max) {\n grid-column-end: span $columns-xs;\n }\n }\n\n &--no-padding {\n grid-column-gap: 0;\n }\n\n &--justify-start {\n justify-content: start;\n }\n\n &--justify-center {\n justify-content: center;\n }\n\n &--justify-stretch {\n justify-content: stretch;\n }\n\n &--justify-end {\n justify-content: end;\n }\n}\n\n@mixin create-grid-layout($size) {\n $creen-size: 1px;\n\n $columns: $columns;\n\n @if $size == \"xs\" {\n $creen-size: 1px;\n $columns: $columns-xs;\n }\n @if $size == \"sm\" {\n $creen-size: $screen-sm;\n }\n @if $size == \"md\" {\n $creen-size: $screen-md;\n }\n @if $size == \"lg\" {\n $creen-size: $screen-lg;\n }\n @if $size == \"xl\" {\n $creen-size: $screen-xl;\n }\n\n // Columns\n @media (min-width: $creen-size) {\n @for $i from 1 through $columns {\n [data-col-#{$size}=\"#{$i}\"] {\n grid-column-end: span $i;\n }\n }\n }\n\n // Column start\n @media (min-width: $creen-size) {\n @for $i from 1 through $columns {\n [data-col-start-#{$size}=\"#{$i}\"] {\n grid-column-start: $i;\n }\n }\n }\n}\n\n@include create-grid-layout(xs);\n@include create-grid-layout(sm);\n@include create-grid-layout(md);\n@include create-grid-layout(lg);\n@include create-grid-layout(xl);\n\n//En XS desactivamos column start\n@media (max-width: $screen-xs-max) {\n [data-col-start-sm],\n [data-col-start-md],\n [data-col-start-lg],\n [data-col-start-xl] {\n grid-column-start: 1;\n }\n}\n","// --------------------------------------------------\n// Grid - CSS vars\n// --------------------------------------------------\n\n:root {\n --grid-gutter: 32px;\n --container-sm: 720px;\n --container-md: 944px;\n --container-lg: 1136px;\n --container-xl: 1248px;\n --container-grid-mixed-width: 1600px;\n}\n\n// --------------------------------------------------\n// Grid - SCSS vars, can not be CSS vars\n// --------------------------------------------------\n$columns: 12;\n$columns-xs: 4;\n\n// --------------------------------------------------\n// Media Queries - SCSS vars, can not be CSS vars\n// --------------------------------------------------\n\n//Mobile First (min)\n$screen-xs: 320px;\n$screen-sm: 768px;\n$screen-md: 992px;\n$screen-lg: 1200px;\n$screen-xl: 1440px;\n\n//Desktop First (max)\n$screen-xs-max: 767px;\n$screen-sm-max: 991px;\n$screen-md-max: 1199px;\n$screen-lg-max: 1439px;\n","//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n\n/*\nZ-index Scale\n*/\n:root {\n --zindex0: 0;\n --zindex1: 100;\n --zindex2: 200;\n --zindex3: 300;\n --zindex4: 400;\n --zindex5: 500;\n --zindex6: 600;\n --zindex7: 700;\n --zindex8: 800;\n --zindex9: 900;\n}\n","@import \"~getbasecore/src/utils/vars/core_vars.scss\";\n:root {\n /*\nMargin Scale\n*/\n --margin1: 0.8rem;\n --margin2: 1.6rem;\n --margin3: 2.4rem;\n --margin4: 3.2rem;\n --margin5: 4rem;\n --margin6: 4.8rem;\n\n --margin-elements: 32px;\n --margin-components: 18rem;\n\n // --------------------------------------------------\n // Icons sizes\n // --------------------------------------------------\n --icon-xl: 128px;\n --icon-lg: 56px;\n --icon-md: 48px;\n --icon-sm: 32px;\n --icon-xs: 24px;\n\n // --------------------------------------------------\n // Inputs & Buttons fixed height inside forms\n // --------------------------------------------------\n --input-height-xs: 56px;\n --input-height-sm: 56px;\n --input-height: 56px;\n --input-height-lg: 56px;\n}\n// --------------------------------------------------\n// Colors - Global Palette\n// --------------------------------------------------\n\n:root {\n --color-success: #99cc33;\n --color-info: #6ea0c6;\n --color-warning: #fb7d0c;\n --color-danger: #ec3457;\n --color-disabled: #afafaf;\n\n --color-text-1: #262626;\n --color-text-2: #444;\n\n --white: #ffffff;\n --anthracite: #262626;\n --black: #000000;\n --grey1: #e6e6e6;\n --grey2: #666666;\n --grey3: #bbbbbb;\n --blue1: #1c69d4;\n --blue2: #0653b6;\n --brown-grey: #979797;\n\n --color-bg-primary: #1c69d4;\n\n --color-text-1: #444;\n --color-text-2: #222;\n --color-text-3: #222;\n --color-text-4: #666666;\n\n // BG colors\n --color-bg-1: #ac30d3;\n --color-bg-2: #09263c;\n --color-bg-3: #99cc33;\n --color-bg-4: #0076d9;\n --color-bg-5: rgb(251, 225, 109);\n --color-bg-6: #c41772;\n --color-bg-7: #e6e6e6;\n --color-border-1: #e3e3e3;\n\n --color-black: #262626;\n --color-brown-grey: #8e8e8e;\n --color-blue-blue: #1c69d4;\n --color-greyish-brown: #4d4d4d;\n --color-very-light-pink: #d8d8d8;\n\n --color-placeholder-1: #e3e3e3;\n\n --color-accordion--hover: #f5f5f5;\n --color-brand: rgb(0, 118, 217);\n\n --color-highlight: var(--color-bg-1);\n}\n.steamOS {\n --color-highlight: var(--color-bg-1);\n}\n\n.Windows {\n --color-highlight: var(--color-bg-4);\n}\n\n.Android {\n --color-highlight: var(--color-bg-3);\n}\n","//\n//\n// Important!!! Only scss vars & mixins are allowed to be imported here.\n// Dont use CSS Variables or regular CSS as this file is loaded in every component\n//\n//\n@import \"./utils/grid-layout/grid-layout.scss\";\n@import \"./utils/mixins/mixins.scss\";\n@import \"./utils/vars/vars.scss\";\n@import \"./utils/animate/animate.scss\";\n\n// --------------------------------------------------\n// Custom Fonts here ! Store them in src/assets/fonts\n//\n// Some examples here\n// https://github.com/matthewgonzalez/fontplop/releases\n// https://google-webfonts-helper.herokuapp.com/fonts/\n//\n// --------------------------------------------------\n@font-face {\n font-family: \"Avenir\";\n src: url(\"fonts/avenir-light-webfont.woff2\");\n font-weight: 100;\n}\n@font-face {\n font-family: \"Avenir\";\n src: url(\"fonts/avenir-roman-webfont.woff2\");\n font-weight: 300;\n}\n@font-face {\n font-family: \"Avenir\";\n src: url(\"fonts/avenir-medium-webfont.woff2\");\n font-weight: bolder;\n}\n","//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n@import \"/src/global.scss\";\n@mixin generate_titles(\n $title-name,\n $font-size,\n $line-height,\n $letter-spacing,\n $font-family,\n $font-weight,\n $color,\n $mb,\n $bg: none,\n $pb: 0,\n $border: 0\n) {\n [class*=\"#{$title-name}\"] {\n display: block;\n font-size: $font-size;\n line-height: $line-height;\n font-family: $font-family;\n font-weight: $font-weight;\n letter-spacing: $letter-spacing;\n color: $color;\n margin-bottom: $mb;\n padding-bottom: $pb;\n border: $border;\n background: $bg;\n }\n}\n\n// --------------------------------------------------\n// Tamaño de fuentes en REM\n// --------------------------------------------------\n\nhtml {\n font-size: 62.5% !important; // 1.6rem = 16px, 20rem = 20px, etc...\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n//Reset a los Hx para que no tengan valores, se les pasará mediante clases\n//h1, h2, h3, h4, h5, h6 { font-size: inherit; margin: 0; width: auto; color: $color-text }\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin: 0;\n text-decoration: none;\n font-size: inherit;\n width: auto;\n}\n\n$body-font-size: 1.5rem;\n$body-font-family: \"OpenSans\";\n$body-text-color: var(--color-text-1);\n$body-selection-bg-color: #0653b6;\n$body-selection-color: white;\n$xs-adjustment: 20%; // 62.5 to match Desktop Size\n$p-mb: var(--margin3);\n$p-capitular-size: 6rem;\n$lead-font-size: 8rem;\n$small-font-size: 1.2rem;\n\n// --------------------------------------------------\n// Custom Fonts in html-start.html !\n//\n// https://github.com/matthewgonzalez/fontplop/releases\n// https://google-webfonts-helper.herokuapp.com/fonts/\n//\n// --------------------------------------------------\n\n// --------------------------------------------------\n// Ajuste de fuentes en responsive\n// --------------------------------------------------\nhtml {\n @media (max-width: $screen-xs-max) {\n font-size: var(--xs-adjustment);\n }\n @media (max-width: $screen-sm-max) {\n font-size: 52%;\n }\n}\n\n// --------------------------------------------------\n// Global font attributes\n// --------------------------------------------------\n\nbody {\n margin: 0;\n font-size: $body-font-size;\n font-family: $body-font-family;\n font-weight: 400;\n color: $body-text-color;\n letter-spacing: -0.2px;\n line-height: 140%;\n @media (max-width: $screen-sm-max) {\n font-size: $body-font-size;\n }\n}\n\n// --------------------------------------------------\n// Text selection\n// --------------------------------------------------\n::selection {\n color: $body-selection-color;\n background: $body-selection-bg-color;\n}\n\n// --------------------------------------------------\n// Text Tags\n// --------------------------------------------------\n\nhr {\n margin: var(--margin3) 0;\n}\n\np {\n margin-bottom: $p-mb;\n line-height: 140%;\n color: $body-text-color;\n &.capitular {\n &::first-letter {\n float: left;\n font-size: $p-capitular-size;\n margin: 0 $body-font-size 1rem 0;\n vertical-align: bottom;\n margin-top: 10px;\n }\n }\n}\n\n.lead {\n font-family: \"Neuton\";\n font-size: $lead-font-size;\n letter-spacing: 0;\n margin-bottom: var(--margin3);\n}\n\nsmall {\n font-size: $small-font-size;\n display: inline-block;\n margin-bottom: var(--margin3);\n line-height: $small-font-size * 1.5;\n color: var(--grey2);\n}\n\nstrong,\nb {\n font-weight: bold;\n}\n\nabbr {\n border-bottom: 1px dotted;\n}\n\nem,\ni {\n font-style: italic;\n}\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n top: -0.5em;\n}\n\nsub {\n top: auto;\n bottom: -0.5em;\n}\n\ncite {\n font-style: italic;\n &:after,\n &:before {\n content: '\"';\n }\n}\n\ncode {\n background: #000;\n color: white;\n padding: 10px;\n font-family: \"Monaco\";\n display: block;\n margin-bottom: var(--margin1);\n}\n\nmark {\n}\n\ndel {\n}\n\nins {\n}\n\nblockquote {\n}\n\naddress {\n}\n\n@import \"/src/components/atoms/Typography/typography.scss\";\n","//@import \"~getbasecore/src/components/atoms/Typography/core_typography.scss\";\n$body-font-size: 1.5rem;\n$body-font-family: \"Avenir\";\n$body-text-color: var(--color-text-1);\n$body-selection-bg-color: #0653b6;\n$body-selection-color: white;\n$xs-adjustment: 20%; // 62.5 to match Desktop Size\n$p-mb: var(--margin3);\n$p-capitular-size: 6rem;\n$lead-font-size: 2.2rem;\n$small-font-size: 1.2rem;\n\n// --------------------------------------------------\n// Custom Fonts in html-start.html !\n//\n// https://github.com/matthewgonzalez/fontplop/releases\n// https://google-webfonts-helper.herokuapp.com/fonts/\n//\n// --------------------------------------------------\n\n// --------------------------------------------------\n// Titulares\n// --------------------------------------------------\n\n// @mixin generate_titles($title-name, $font-size, $line-height, $letter-spacing, $font-family, $font-weight, $color, $mb, $bg:none, $pb:0, $border:0)\n\n@include generate_titles(\"h1\", 9.4rem, 9.4rem, -0.05rem, \"Avenir\", 700, var(--color-text-2), 6rem);\n@include generate_titles(\"h2\", 9.4rem, 9.4rem, -0.05rem, \"Avenir\", 100, var(--color-text-2), 4.4rem);\n@include generate_titles(\"h3\", 6rem, 6rem, -0.05rem, \"Avenir\", 700, var(--color-text-2), 3.5rem);\n@include generate_titles(\"h4\", 2.5rem, 2.5rem, -0.05rem, \"Avenir\", 300, var(--color-highlight), 1rem);\n@include generate_titles(\"h5\", 2rem, 2.7rem, -0.05rem, \"Avenir\", 300, var(--color-text-2), 2rem);\n@include generate_titles(\"h6\", 1.5rem, 1.5rem, -0.05rem, \"Avenir\", 300, var(--color-text-2), 1.5rem);\n\nhgroup {\n margin-bottom: 100px;\n .h1,\n .h2 {\n margin-bottom: 0;\n }\n}\n\n// * + {\n// .h1,\n// .h2,\n// .h3,\n// .h4,\n// .h5,\n// .h6 {\n// margin-top: var(--margin2);\n// }\n// }\n//\n// .h--border {\n// border-bottom: 1px solid currentcolor;\n// }\n//\n// .h--highlight {\n// &:before {\n// content: \"\";\n// display: block;\n// height: 8px;\n// width: 40px;\n// background: #000;\n// margin-bottom: 20px;\n// }\n// }\n//\n// // --------------------------------------------------\n// // Ajuste de fuentes en responsive\n// // --------------------------------------------------\n// html {\n// @media (max-width: var(--screen-xs-max)) {\n// font-size: $xs-adjustment !important;\n// }\n// @media (max-width: var(--screen-sm-max)) {\n// font-size: 52% !important;\n// }\n// }\n//\n// // --------------------------------------------------\n// // Global font attributes\n// // --------------------------------------------------\n//\nhtml > body {\n margin: 0;\n font-size: $body-font-size;\n font-family: $body-font-family;\n font-weight: 400;\n color: $body-text-color;\n letter-spacing: -0.2px;\n line-height: 140%;\n}\n\n.h1,\n.h2,\n.h3 {\n @media (max-width: $screen-xs-max) {\n font-size: 6rem;\n line-height: 6rem;\n -webkit-text-stroke-width: none;\n -webkit-text-stroke-color: transparent;\n //color: #fff\n }\n}\n\n.h3 {\n @media (max-width: $screen-xs-max) {\n font-size: 4rem;\n line-height: 4rem;\n }\n}\n\n//\n// // --------------------------------------------------\n// // Text selection\n// // --------------------------------------------------\n// ::selection {\n// color: $body-selection-color;\n// background: $body-selection-bg-color;\n// }\n//\n// // --------------------------------------------------\n// // Text Tags\n// // --------------------------------------------------\n//\n// hr {\n// margin: var(--margin3) 0;\n// }\n//\n// p {\n// margin-bottom: $p-mb;\n// line-height: 140%;\n// color: $body-text-color;\n// &.capitular {\n// &::first-letter {\n// float: left;\n// font-size: $p-capitular-size;\n// margin: 0 $body-font-size 1rem 0;\n// vertical-align: bottom;\n// margin-top: 10px;\n// }\n// }\n// }\n//\n.lead {\n font-family: \"Avenir\";\n font-size: $lead-font-size;\n letter-spacing: 0;\n margin-bottom: var(--margin5);\n font-weight: 100;\n}\n//\n// small {\n// font-size: $small-font-size;\n// display: inline-block;\n// margin-bottom: var(--margin3);\n// line-height: $small-font-size * 1.5;\n// color: var(--grey2);\n// }\n//\n// strong,\n// b {\n// font-weight: bold;\n// }\n//\n// abbr {\n// border-bottom: 1px dotted;\n// }\n//\n// em,\n// i {\n// font-style: italic;\n// }\n//\n// sub,\n// sup {\n// font-size: 75%;\n// line-height: 0;\n// position: relative;\n// top: -0.5em;\n// }\n//\n// sub {\n// top: auto;\n// bottom: -0.5em;\n// }\n//\n// cite {\n// font-style: italic;\n// &:after,\n// &:before {\n// content: '\"';\n// }\n// }\n//\n// code {\n// background: #000;\n// color: white;\n// padding: 10px;\n// font-family: \"Monaco\";\n// display: block;\n// margin-bottom: var(--margin1);\n// }\n//\n// mark {\n// }\n//\n// del {\n// }\n//\n// ins {\n// }\n//\n// blockquote {\n// }\n//\n// address {\n// }\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/css/main.68d51e4f.css.map b/static/css/main.68d51e4f.css.map deleted file mode 100644 index 760582a..0000000 --- a/static/css/main.68d51e4f.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/css/main.68d51e4f.css","mappings":"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E,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,mBACE,wBADF,mBACE,wBADF,mBACE,wBAQF,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,yBACE,oBAFS,CACX,yBACE,oBAFS,CACX,yBACE,oBAFS,CAPT,CAHN,yBAEI,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,mBACE,wBADF,mBACE,wBADF,mBACE,wBAQF,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,yBACE,oBAFS,CACX,yBACE,oBAFS,CACX,yBACE,oBAFS,CAPT,CAHN,yBAEI,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,kBACE,uBADF,mBACE,wBADF,mBACE,wBADF,mBACE,wBAQF,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,wBACE,mBAFS,CACX,yBACE,oBAFS,CACX,yBACE,oBAFS,CACX,yBACE,oBAFS,CAPT,CAsBR,wBACE,gFAIE,qBCrIJ,MACE,kBAAmB,CACnB,oBAAqB,CACrB,oBAAqB,CACrB,qBAAsB,CACtB,qBAAsB,CACtB,mCAAmC,CCCnC,WAAY,CACZ,aAAc,CACd,aAAc,CACd,aAAc,CACd,aAAc,CACd,aAAc,CACd,aAAc,CACd,aAAc,CAC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","sources":["../node_modules/getbasecore/src/components/atoms/Btn/core_btn.scss","../node_modules/getbasecore/dist/components/atoms/BtnSimple/core_btn-simple.scss","components/atoms/BtnSimple/btn-simple.scss","../node_modules/getbasecore/dist/components/atoms/BtnSwitch/core_btn-switch.scss","components/atoms/BtnSwitch/btn-switch.scss","../node_modules/getbasecore/dist/components/atoms/Icon/core_icon.scss","../node_modules/getbasecore/src/components/atoms/Link/core_link.scss","../node_modules/getbasecore/src/components/atoms/LinkSimple/core_link-simple.scss","../node_modules/getbasecore/dist/components/atoms/LinkSimple/link-simple.scss","../node_modules/getbasecore/src/components/atoms/Iframe/core_iframe.scss","../node_modules/getbasecore/src/components/atoms/Icon/core_icon.scss","../node_modules/getbasecore/dist/components/atoms/List/core_list.scss","components/atoms/List/list.scss","../node_modules/getbasecore/dist/components/atoms/LoaderCircle/core_loader-circle.scss","components/atoms/LoaderCircle/loader-circle.scss","../node_modules/getbasecore/dist/components/atoms/ProgressBar/core_progress-bar.scss","components/atoms/ProgressBar/progress-bar.scss","../node_modules/getbasecore/dist/components/atoms/FormInputSimple/core_form-input-simple.scss","components/atoms/FormInputSimple/form-input-simple.scss","../node_modules/getbasecore/dist/components/atoms/FormRadioSimple/core_form-radio-simple.scss","../node_modules/getbasecore/src/utils/mixins/core_mixins.scss","components/atoms/FormRadioSimple/form-radio-simple.scss","../node_modules/getbasecore/dist/components/atoms/FormCheckboxSimple/core_form-checkbox-simple.scss","components/atoms/FormCheckboxSimple/form-checkbox-simple.scss","../node_modules/getbasecore/dist/components/atoms/FormInputRangeSimple/core_form-input-range-simple.scss","components/atoms/FormInputRangeSimple/form-input-range-simple.scss","components/molecules/Section/section.scss","components/molecules/Modal/core_modal.scss","components/molecules/Modal/modal.scss","../node_modules/getbasecore/src/utils/reset/core_reset.scss","../node_modules/getbasecore/src/utils/grid-layout/core_grid-layout.scss","utils/grid-layout/grid-layout.scss","../node_modules/getbasecore/src/utils/vars/core_vars.scss","utils/vars/vars.scss","global.scss","../node_modules/getbasecore/src/components/atoms/Typography/core_typography.scss","components/atoms/Typography/typography.scss"],"sourcesContent":["//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n@import \"/src/utils/grid-layout/grid-layout.scss\";\nbutton {\n border: 0;\n background: none;\n font-size: inherit;\n color: inherit;\n padding: 0;\n line-height: inherit;\n cursor: pointer;\n font-family: inherit;\n margin: 0;\n}\n[class*=\"btn-\"],\n.form .form__addon {\n text-decoration: none;\n cursor: pointer;\n margin: 0;\n vertical-align: middle;\n -webkit-appearance: none;\n vertical-align: top;\n &::hover {\n text-decoration: none;\n }\n\n &:focus {\n outline: none;\n }\n}\n\n.btn {\n &--center {\n &.btn--center {\n margin-left: auto;\n margin-right: auto;\n display: block;\n }\n }\n &--block {\n display: block;\n width: 100%;\n text-align: center;\n\n &--xs {\n @media (min-width: $screen-xs) and (max-width: $screen-xs-max) {\n display: block;\n width: 100%;\n text-align: center;\n padding-left: 0;\n padding-right: 0;\n }\n }\n &--sm {\n @media (min-width: $screen-sm) and (max-width: $screen-sm-max) {\n display: block;\n width: 100%;\n text-align: center;\n padding-left: 0;\n padding-right: 0;\n }\n }\n &--md {\n @media (min-width: var(--screen-md)) and (max-width: var(--screen-md-max)) {\n display: block;\n width: 100%;\n text-align: center;\n padding-left: 0;\n padding-right: 0;\n }\n }\n &--lg {\n @media (min-width: var(--screen-lg)) and (max-width: var(--screen-lg-max)) {\n display: block;\n width: 100%;\n text-align: center;\n padding-left: 0;\n padding-right: 0;\n }\n }\n &--xl {\n @media (min-width: var(--screen-xl)) {\n display: block;\n width: 100%;\n text-align: center;\n padding-left: 0;\n padding-right: 0;\n }\n }\n }\n}\n\n// Reset para botones con aspecto de link\nbutton[class*=\"link--\"] {\n border: none;\n background: none;\n padding: 0;\n font-size: inherit;\n cursor: pointer;\n}\n\n// --------------------------------------------------\n// Button Groups\n// --------------------------------------------------\n\n.btn-group {\n display: inline-flex;\n //Ocultamos input cuando son Toggles\n input {\n display: none;\n }\n\n [class*=\"btn-\"] {\n margin: 0;\n border-radius: 0;\n }\n}\n","//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n@import \"~getbasecore/src/components/atoms/Btn/core_btn.scss\";\n@import \"/src/global.scss\";\n@mixin generate-btn-simple(\n $name,\n $color,\n $bg,\n $color-hover,\n $bg-hover,\n $bg-active,\n $color-disabled,\n $bg-disabled\n) {\n .btn-simple--#{$name} {\n fill: $color;\n color: $color;\n background: $bg;\n\n &:hover,\n &:focus {\n fill: $color-hover;\n color: $color-hover;\n background: $bg-hover;\n }\n\n &[disabled],\n &.is-disabled {\n fill: $color-disabled;\n color: $color-disabled;\n background: $bg-disabled;\n }\n //When used as a fake radio / checkbox\n\n @at-root .btn-group input + label#{&} {\n background: $bg;\n }\n\n @at-root .btn-group input:checked + label#{&} {\n background: $bg-active;\n }\n }\n}\n\n.btn-simple {\n display: inline-block;\n align-items: center;\n font-size: var(--btn-simple-text-size);\n padding: var(--btn-simple-padding);\n border-radius: var(--btn-simple-border-radius);\n transition: var(--btn-simple-transition-out);\n line-height: var(--btn-simple-text-size);\n font-weight: bold;\n margin-bottom: var(--margin-elements);\n //Remember, the button has the same height as the form input to be hable to use the button in horizontal forms. Adjust the height in _vars component\n .form & {\n height: var(--input-height);\n &--xs {\n height: var(--input-height-xs);\n }\n\n &--sm {\n height: var(--input-height-sm);\n }\n\n &--lg {\n height: var(--input-height-lg);\n }\n }\n\n // @media (max-width: $screen-xs-max) {\n // height: auto;\n // }\n\n &:hover {\n transition: var(--btn-simple-transition-in);\n }\n &:focus {\n transition: var(--btn-simple-transition-in);\n }\n\n //Separación entre botones juntos en XS\n &--block + .btn--block {\n @media (min-width: $screen-xs) and (max-width: $screen-sm-max) {\n margin-top: var(--btn-simple-mt);\n }\n }\n\n //Variantes de tamaños\n\n &--xs {\n font-size: var(--btn-simple-text-size-xs);\n padding: var(--btn-simple-padding-xs);\n }\n\n &--sm {\n font-size: var(--btn-simple-text-size-sm);\n padding: var(--btn-simple-padding-sm);\n }\n\n &--lg {\n font-size: var(--btn-simple-text-size-lg);\n padding: var(--btn-simple-padding-lg);\n }\n}\n\n//Ajustes cuando el botón es un elemento diferente a button\na.btn-simple,\nlabel.btn-simple {\n line-height: 1;\n &--xs {\n line-height: 1;\n }\n\n &--sm {\n line-height: 1;\n }\n\n &--lg {\n line-height: 1;\n }\n}\n\n.btn-group {\n margin-bottom: var(--margin3);\n justify-content: center;\n @media (max-width: $screen-sm-max) {\n flex-wrap: wrap;\n }\n\n [class*=\"btn\"] {\n @media (max-width: $screen-sm-max) {\n width: 100%;\n //display: block;\n margin: 0;\n margin-bottom: var(--margin-elements);\n }\n margin-right: var(--btn-group-separation);\n &:first-of-type {\n border-top-left-radius: var(--btn-simple-border-radius);\n border-bottom-left-radius: var(--btn-simple-border-radius);\n }\n &:last-child {\n border-top-right-radius: var(--btn-simple-border-radius);\n border-bottom-right-radius: var(--btn-simple-border-radius);\n margin-right: 0;\n }\n }\n}\n\n//Separación entre botones juntos\n.btn--block + .btn--block {\n margin-top: var(--btn-simple-mt);\n}\n\n.btn--block {\n padding-left: 0;\n padding-right: 0;\n}\n@import \"/src/components/atoms/BtnSimple/btn-simple.scss\";\n",".btn-simple {\n --btn-simple-padding: 21px 48px;\n --btn-simple-text-size: 14px;\n --btn-simple-mt: 10px;\n --btn-simple-border-radius: 0px;\n --btn-simple-transition-in: 0.2s;\n --btn-simple-transition-out: 0.2s;\n --btn-simple-padding-xs: 4px 5px;\n --btn-simple-text-size-xs: 10px;\n --btn-simple-padding-sm: 6px 10px;\n --btn-simple-text-size-sm: 12px;\n --btn-simple-padding-lg: 10px 18px;\n --btn-simple-text-size-lg: 18px;\n --btn-group-separation: 18px;\n}\n//@include generate-btn-simple(var(--name, $color, $bg, $color-hover, $bg-hover, $bg-active, $color-disabled, $bg-disabled));\n\n@include generate-btn-simple(1, white, var(--color-highlight), white, #444, #444, white, var(--color-disabled));\n@include generate-btn-simple(2, white, var(--color-danger), white, #444, #444, white, var(--color-disabled));\n\n@include generate-btn-simple(3, white, var(--color-info), white, #444, #444, white, var(--color-disabled));\n\nhtml {\n scroll-behavior: smooth;\n}\n\n.btn-simple {\n font-family: Avenir;\n font-size: 18px;\n border-radius: 50px;\n}\n\n.big-blob {\n position: absolute;\n top: 0;\n right: 0;\n width: 100vw;\n background: red;\n clip-path: url(#svgClipPathID);\n @media (max-width: $screen-xs-max) {\n display: none;\n }\n}\n\n#big-blob-svg,\n#small-blobs-svg {\n position: absolute;\n}\n\n.svg {\n position: absolute;\n width: 0;\n height: 0;\n}\n.hero {\n min-height: 60vh;\n}\n.big-blob {\n width: 70vw;\n height: 80%;\n background: linear-gradient(to bottom, var(--color-highlight), var(--color-bg-2));\n background-size: cover;\n clip-path: url(#big-blob);\n position: absolute;\n top: 0;\n right: 0;\n animation: move 10s ease-in-out infinite;\n translate: 20% -20%;\n z-index: -1;\n pointer-events: none;\n @media (max-width: $screen-xs-max) {\n width: 150vw;\n }\n}\n\n@keyframes move {\n 0% {\n transform: scale(1) translate(100px 100px);\n }\n 38% {\n transform: scale(1, 1.2) rotate(30deg);\n }\n 40% {\n transform: scale(1, 1.2) rotate(30deg);\n }\n 78% {\n transform: scale(1.2) rotate(-18deg);\n }\n 80% {\n transform: scale(1.2) rotate(-15deg);\n }\n 100% {\n transform: scale(1);\n }\n}\n\n.is-highlight {\n color: var(--color-highlight);\n -webkit-text-stroke-width: 1px;\n -webkit-text-stroke-color: white;\n @media (max-width: $screen-xs-max) {\n -webkit-text-stroke-width: 0;\n }\n}\n\n.header {\n position: static;\n top: 0;\n width: 100%;\n z-index: 9;\n padding: 12px 0;\n margin-bottom: 50px;\n // background: rgba(255, 255, 255, 0.1);\n // backdrop-filter: blur(7px);\n &__logo {\n width: 250px;\n }\n &__inner {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n &__links {\n flex-basis: 20%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n &__link {\n color: #fff;\n font-weight: bold;\n }\n}\n\n.hero {\n &__item {\n translate: 10% 0%;\n display: flex;\n height: 444px;\n position: relative;\n button {\n cursor: pointer;\n }\n svg {\n transition: 0.5s;\n height: 100px;\n width: 100px;\n fill: white;\n transform: rotate(180deg);\n stroke: var(--color-bg-2);\n }\n }\n .iframe-container {\n position: absolute;\n top: 60px;\n left: 338px;\n }\n}\n\nbody {\n overflow-x: hidden;\n font-family: \"Avenir\";\n}\n\n.img,\n.picture {\n width: 100%;\n max-width: 100%;\n}\n\n.container--center {\n text-align: center;\n}\n\n.rfm-marquee {\n img {\n height: 80px;\n margin-right: 50px;\n }\n}\n\n.path-0 {\n animation: pathAnim-0 30s;\n animation-timing-function: linear;\n animation-iteration-count: infinite;\n}\n@keyframes pathAnim-0 {\n 0% {\n d: path(\n \"M 0,400 L 0,0 C 70.08656818962555,31.90656131913432 140.1731363792511,63.81312263826864 206,94 C 271.8268636207489,124.18687736173136 333.3940226726211,152.65407076605976 395,174 C 456.6059773273789,195.34592923394024 518.2507729302645,209.57059429749228 597,216 C 675.7492270697355,222.42940570250772 771.6028856063207,221.06355204397113 849,206 C 926.3971143936793,190.93644795602887 985.3376846444523,162.17519752662318 1052,166 C 1118.6623153555477,169.82480247337682 1193.0463758158708,206.23565784953627 1259,184 C 1324.9536241841292,161.76434215046373 1382.4768120920646,80.88217107523187 1440,0 L 1440,400 L 0,400 Z\"\n );\n }\n 25% {\n d: path(\n \"M 0,400 L 0,0 C 72.55238749570594,27.38234283751288 145.1047749914119,54.76468567502576 212,96 C 278.8952250085881,137.23531432497424 340.13328753005845,192.32360013740984 406,186 C 471.86671246994155,179.67639986259016 542.3620748883546,111.94091377533492 605,100 C 667.6379251116454,88.05908622466508 722.4184129165235,131.91274476125042 787,166 C 851.5815870834765,200.08725523874958 925.9642734455515,224.40810717966335 996,216 C 1066.0357265544485,207.59189282033665 1131.724493301271,166.45482652009616 1205,125 C 1278.275506698729,83.54517347990382 1359.1377533493646,41.77258673995191 1440,0 L 1440,400 L 0,400 Z\"\n );\n }\n 50% {\n d: path(\n \"M 0,400 L 0,0 C 57.13500515286843,100.95499828237719 114.27001030573686,201.90999656475438 177,212 C 239.72998969426314,222.09000343524562 308.054963929921,141.31501202335966 391,121 C 473.945036070079,100.68498797664034 571.510133974579,140.82995534180696 649,138 C 726.489866025421,135.17004465819304 783.9045001717625,89.36516660941255 847,89 C 910.0954998282375,88.63483339058745 978.8718653383714,133.7093782205428 1042,172 C 1105.1281346616286,210.2906217794572 1162.608038474751,241.79732050841633 1228,212 C 1293.391961525249,182.20267949158367 1366.6959807626245,91.10133974579183 1440,0 L 1440,400 L 0,400 Z\"\n );\n }\n 75% {\n d: path(\n \"M 0,400 L 0,0 C 83.37890759189281,60.32566128478187 166.75781518378562,120.65132256956375 235,125 C 303.2421848162144,129.34867743043625 356.34764685675026,77.72037100652695 416,85 C 475.65235314324974,92.27962899347305 541.8515973892132,158.4671934043284 605,177 C 668.1484026107868,195.5328065956716 728.2459635863964,166.41085537615942 808,145 C 887.7540364136036,123.5891446238406 987.1645482652009,109.88938509103403 1063,138 C 1138.835451734799,166.11061490896597 1191.0958433527999,236.03160425970455 1250,220 C 1308.9041566472001,203.96839574029545 1374.4520783236,101.98419787014772 1440,0 L 1440,400 L 0,400 Z\"\n );\n }\n 100% {\n d: path(\n \"M 0,400 L 0,0 C 70.08656818962555,31.90656131913432 140.1731363792511,63.81312263826864 206,94 C 271.8268636207489,124.18687736173136 333.3940226726211,152.65407076605976 395,174 C 456.6059773273789,195.34592923394024 518.2507729302645,209.57059429749228 597,216 C 675.7492270697355,222.42940570250772 771.6028856063207,221.06355204397113 849,206 C 926.3971143936793,190.93644795602887 985.3376846444523,162.17519752662318 1052,166 C 1118.6623153555477,169.82480247337682 1193.0463758158708,206.23565784953627 1259,184 C 1324.9536241841292,161.76434215046373 1382.4768120920646,80.88217107523187 1440,0 L 1440,400 L 0,400 Z\"\n );\n }\n}\n\n.path-1 {\n animation: pathAnim-1 40s;\n animation-timing-function: linear;\n animation-iteration-count: infinite;\n}\n@keyframes pathAnim-1 {\n 0% {\n d: path(\n \"M 0,400 L 0,0 C 109.7129186602871,13.559808612440193 219.4258373205742,27.119617224880386 329,80 C 438.5741626794258,132.8803827751196 548.0095693779905,225.08133971291866 620,223 C 691.9904306220095,220.91866028708134 726.5358851674641,124.55502392344499 822,121 C 917.4641148325359,117.44497607655501 1073.8468899521529,206.69856459330143 1187,202 C 1300.1531100478471,197.30143540669857 1370.0765550239234,98.65071770334929 1440,0 L 1440,400 L 0,400 Z\"\n );\n }\n 25% {\n d: path(\n \"M 0,400 L 0,0 C 78.11483253588514,42.44019138755981 156.22966507177028,84.88038277511961 244,109 C 331.7703349282297,133.1196172248804 429.1961722488039,138.91866028708134 525,159 C 620.8038277511961,179.08133971291866 714.9856459330142,213.44497607655504 810,198 C 905.0143540669858,182.55502392344496 1000.8612440191389,117.30143540669856 1106,76 C 1211.138755980861,34.69856459330144 1325.5693779904304,17.34928229665072 1440,0 L 1440,400 L 0,400 Z\"\n );\n }\n 50% {\n d: path(\n \"M 0,400 L 0,0 C 116.71770334928232,56.631578947368425 233.43540669856463,113.26315789473685 330,131 C 426.56459330143537,148.73684210526315 502.97607655502384,127.57894736842105 598,116 C 693.0239234449762,104.42105263157895 806.6602870813398,102.42105263157895 891,101 C 975.3397129186602,99.57894736842105 1030.3827751196172,98.73684210526316 1117,82 C 1203.6172248803828,65.26315789473684 1321.8086124401914,32.63157894736842 1440,0 L 1440,400 L 0,400 Z\"\n );\n }\n 75% {\n d: path(\n \"M 0,400 L 0,0 C 66.13397129186606,79.11004784688996 132.26794258373212,158.2200956937799 247,185 C 361.7320574162679,211.7799043062201 525.0622009569377,186.22966507177034 622,153 C 718.9377990430623,119.77033492822967 749.4832535885168,78.86124401913877 824,92 C 898.5167464114832,105.13875598086123 1017.0047846889952,172.32535885167465 1127,166 C 1236.9952153110048,159.67464114832535 1338.4976076555024,79.83732057416267 1440,0 L 1440,400 L 0,400 Z\"\n );\n }\n 100% {\n d: path(\n \"M 0,400 L 0,0 C 109.7129186602871,13.559808612440193 219.4258373205742,27.119617224880386 329,80 C 438.5741626794258,132.8803827751196 548.0095693779905,225.08133971291866 620,223 C 691.9904306220095,220.91866028708134 726.5358851674641,124.55502392344499 822,121 C 917.4641148325359,117.44497607655501 1073.8468899521529,206.69856459330143 1187,202 C 1300.1531100478471,197.30143540669857 1370.0765550239234,98.65071770334929 1440,0 L 1440,400 L 0,400 Z\"\n );\n }\n}\n\n.iframe-container {\n position: relative;\n overflow: hidden;\n width: 100%;\n padding-top: 56.25%; /* 16:9 Aspect Ratio (divide 9 by 16 = 0.5625) */\n margin-bottom: 20px;\n}\n\n/* Then style the iframe to fit in the container div with full height and width */\n.iframe-container iframe {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n width: 100%;\n height: 100%;\n}\n\n.showcase {\n .showcase__video {\n position: absolute;\n // width: 43vw;\n // height: 24vw;\n left: 0;\n right: 0;\n margin: auto;\n bottom: 0;\n top: 0;\n @media (min-width: $screen-xs) {\n width: 40%;\n height: 50%;\n }\n @media (min-width: $screen-sm) {\n width: 340px;\n height: 190px;\n }\n @media (min-width: $screen-md) {\n width: 460px;\n height: 260px;\n }\n @media (min-width: $screen-lg) {\n width: 550px;\n height: 300px;\n }\n @media (min-width: $screen-xl) {\n width: 600px;\n height: 340px;\n }\n }\n}\n\n@function randomNum($min, $max) {\n $rand: random();\n $randomNum: $min + floor($rand * (($max - $min) + 1));\n\n @return $randomNum;\n}\n.blobs {\n min-height: 600px;\n position: relative;\n}\n.top-bloby,\n.bottom-bloby {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 150px;\n background: var(--color-highlight);\n border-radius: 0 0 100% 100%;\n animation: height #{randomNum(10, 20)}s ease-in-out infinite;\n}\n.bottom-bloby {\n top: auto;\n bottom: 0;\n border-radius: 100% 100% 0 0;\n}\n.bloby {\n position: absolute;\n top: 0;\n left: 0;\n fill: var(--color-highlight);\n width: #{randomNum(5, 10)}vw;\n z-index: -1;\n animation: movy 20s ease-in-out infinite;\n transform-origin: 50% 50%;\n transform: translate(5vw, -12vh);\n &:nth-child(1) {\n left: 5%;\n width: #{randomNum(10, 24)}vw;\n animation: movy #{randomNum(10, 20)}s ease-in-out infinite;\n }\n &:nth-child(2) {\n left: 25%;\n width: #{randomNum(4, 24)}vw;\n animation: movy2 #{randomNum(10, 20)}s ease-in-out infinite;\n }\n &:nth-child(3) {\n left: 35%;\n width: #{randomNum(5, 24)}vw;\n animation: movy3 #{randomNum(10, 20)}s ease-in-out infinite;\n }\n &:nth-child(4) {\n left: 45%;\n width: #{randomNum(5, 24)}vw;\n animation: movy2 #{randomNum(10, 20)}s ease-in-out infinite;\n }\n &:nth-child(5) {\n left: 55%;\n width: #{randomNum(5, 24)}vw;\n animation: movy #{randomNum(10, 20)}s ease-in-out infinite;\n }\n &:nth-child(6) {\n left: 65%;\n width: #{randomNum(6, 24)}vw;\n animation: movy3 #{randomNum(10, 20)}s ease-in-out infinite;\n }\n &:nth-child(7) {\n left: 75%;\n width: #{randomNum(2, 24)}vw;\n animation: movy2 #{randomNum(10, 20)}s ease-in-out infinite;\n }\n &:nth-child(8) {\n left: 85%;\n width: #{randomNum(1, 24)}vw;\n animation: movy #{randomNum(10, 20)}s ease-in-out infinite;\n }\n &:nth-child(9) {\n left: 95%;\n width: #{randomNum(2, 24)}vw;\n animation: movy3 #{randomNum(10, 20)}s ease-in-out infinite;\n }\n}\n$top: -10vw;\n$bottom: 30vw;\n\n@keyframes height {\n 0% {\n height: 10%;\n }\n\n 58% {\n height: 15px;\n }\n\n 100% {\n height: 10%;\n }\n}\n\n@keyframes movy {\n 0% {\n transform: scale(1) translate(0, $bottom) rotate(12deg);\n }\n 38% {\n transform: scale(1.4) translate(0, $top) rotate(#{randomNum(1, 45)}deg);\n }\n 58% {\n transform: scale(1) translate(0, $top) rotate(#{randomNum(1, 45)}deg);\n }\n 80% {\n transform: scale(1.4) translate(0, $top) rotate(#{randomNum(1, 45)}deg);\n }\n 100% {\n transform: scale(1) translate(0, $bottom) rotate(12deg);\n }\n}\n\n@keyframes movy2 {\n 0% {\n transform: scale(1) translate(0, $bottom) rotate(12deg);\n }\n 38% {\n transform: scale(1.4) translate(0, $top) rotate(#{randomNum(1, 45)}deg);\n }\n 58% {\n transform: scale(1) translate(0, $top) rotate(#{randomNum(1, 45)}deg);\n }\n 80% {\n transform: scale(1.4) translate(0, $top) rotate(#{randomNum(1, 45)}deg);\n }\n 100% {\n transform: scale(1) translate(0, $bottom) rotate(12deg);\n }\n}\n@keyframes movy3 {\n 0% {\n transform: scale(1) translate(0, $bottom) rotate(12deg);\n }\n 38% {\n transform: scale(1.4) translate(0, $top) rotate(#{randomNum(1, 45)}deg);\n }\n 58% {\n transform: scale(1) translate(0, $top) rotate(#{randomNum(1, 45)}deg);\n }\n 80% {\n transform: scale(1.4) translate(0, $top) rotate(#{randomNum(1, 45)}deg);\n }\n 100% {\n transform: scale(1) translate(0, $bottom) rotate(12deg);\n }\n}\n\n.download-links {\n display: flex;\n justify-content: space-around;\n margin-bottom: 70px;\n @media (max-width: $screen-xs-max) {\n display: block;\n }\n a {\n margin-bottom: 12px;\n }\n img {\n width: 100px;\n }\n li {\n display: flex;\n flex-direction: column-reverse;\n text-align: center;\n @media (max-width: $screen-xs-max) {\n margin-bottom: 64px;\n }\n }\n}\n\nsvg.logo .path {\n stroke-dasharray: 1320;\n stroke-dashoffset: 0;\n fill: #fff;\n animation: dash 60s linear alternate infinite;\n}\n@keyframes dash {\n 0% {\n stroke-dashoffset: 1320;\n fill: #fff;\n }\n 3% {\n stroke-dashoffset: 0;\n stroke-dasharray: 1320;\n fill: #fff;\n }\n 5% {\n stroke-dashoffset: 0;\n stroke-dasharray: 1320;\n\n fill: inherit;\n }\n 10% {\n stroke-dashoffset: 0;\n stroke-dasharray: 1320;\n\n fill: inherit;\n }\n 100% {\n stroke-dashoffset: 0;\n stroke-dasharray: 1320;\n\n fill: inherit;\n }\n}\n\n.text-line {\n stroke-dasharray: 500;\n stroke-dashoffset: 500;\n animation: dashfont 5s linear forwards, filling 5s ease-in forwards;\n font-size: 80px;\n}\n\n@keyframes dashfont {\n to {\n stroke-dashoffset: 0;\n }\n}\n\n@keyframes filling {\n 0%,\n 90% {\n fill: #bac736;\n fill-opacity: 0;\n }\n 100% {\n fill: #bac736;\n fill-opacity: 1;\n }\n}\n","//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n.btn-switch {\n position: relative;\n user-select: none;\n display: block;\n &__checkbox {\n display: none;\n }\n &__label {\n display: block;\n overflow: hidden;\n cursor: pointer;\n padding: 0;\n text-indent: -999em;\n }\n &__label:before {\n content: \"\";\n display: block;\n position: absolute;\n top: 0;\n bottom: 0;\n margin: 0px;\n }\n &__checkbox:checked + &__label:before {\n right: 0px;\n }\n}\n\n.btn-switch {\n width: var(--btn-switch-width);\n label.btn-switch__label {\n height: var(--btn-switch-height);\n line-height: var(--btn-switch-height);\n border: var(--btn-switch-bg-inactive-border) !important;\n border-radius: var(--btn-switch-height);\n background-color: var(--btn-switch-bg-inactive);\n transition: var(--btn-switch-transition-in);\n }\n &__label:before {\n width: var(--btn-switch-knob-width);\n height: var(--btn-switch-knob-width);\n top: var(--btn-switch-knob-top);\n background: var(--btn-switch-knob-bg);\n right: calc(\n var(--btn-switch-width) - var(--btn-switch-height) +\n var(--btn-switch-knob-top)\n );\n border: var(--btn-switch-knob-border-active);\n border-radius: var(--btn-switch-height);\n transition: var(--btn-switch-transition-out);\n box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.05), 0 2px 2px 0 rgba(0, 0, 0, 0.1),\n 0 3px 1px 0 rgba(0, 0, 0, 0.05);\n }\n &__checkbox:checked + &__label:before {\n right: var(--btn-switch-knob-top);\n }\n\n &__checkbox:checked + &__label {\n background-color: var(--btn-switch-bg-active);\n }\n &__checkbox:checked + &__label,\n &__checkbox:checked + &__label:before {\n border-color: var(--btn-switch-bg-active);\n border: var(--btn-switch-border !important);\n }\n}\n\n@import \"/src/components/atoms/BtnSwitch/btn-switch.scss\";\n",".btn-switch {\n --btn-switch-height: 30px;\n --btn-switch-width: calc(var(--btn-switch-height) * 2);\n --btn-switch-knob-width: calc(var(--btn-switch-height) - 2px);\n --btn-switch-knob-top: 0px;\n --btn-switch-knob-bg: white;\n --btn-switch-knob-border-active: 1px solid var(--color-border-1);\n --btn-switch-border: 1px solid var(--color-success);\n --btn-switch-transition-in: background-color 0.3s ease-in;\n --btn-switch-transition-out: all 0.3s ease-in 0s;\n --btn-switch-bg-active: var(--color-success);\n --btn-switch-bg-inactive: white;\n --btn-switch-bg-inactive-border: 1px solid var(--color-border-1);\n}\n","//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n\n// --------------------------------------------------\n// Tamaños\n// --------------------------------------------------\n\n// Comentado por incompatibilidad con IE11 y ya no ser necesario\n// Permitimos colorear los iconos\n// .icon use>svg path para solventar Firefox BUG\n//svg path,\n//.icon use>svg path {\n// fill: currentColor;\n//}\n\nsvg.icon.icon.icon {\n vertical-align: middle;\n &--xs {\n width: var(--icon-xs);\n height: var(--icon-xs);\n }\n\n &--sm {\n width: var(--icon-sm);\n height: var(--icon-sm);\n }\n\n &--md {\n width: var(--icon-md);\n height: var(--icon-md);\n }\n\n &--lg {\n width: var(--icon-lg);\n height: var(--icon-lg);\n }\n\n &--xl {\n width: var(--icon-xl);\n height: var(--icon-xl);\n }\n}\n\nsvg.icon {\n vertical-align: middle;\n}\n\n@import \"/src/components/atoms/Icon/icon.scss\";\n","//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n\n[class*=\"link-\"] {\n display: inline-table;\n}\n\n//Button reset to look like buttons\nbutton[class*=\"link-\"] {\n background: none;\n border-left: none;\n border-right: none;\n font-size: inherit;\n margin: 0;\n}\n\n//Reset links\na {\n text-decoration: none;\n color: inherit;\n}\n","//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n\n@mixin generate-link-simple(\n $name,\n $color,\n $color-hover,\n $color-disabled,\n $font-weight\n) {\n .link-simple--#{$name} {\n color: $color;\n font-weight: $font-weight;\n &:hover {\n color: $color-hover;\n }\n &:disabled {\n color: $color-disabled;\n }\n }\n}\n\n.link-simple {\n &:after {\n content: \"\";\n display: block;\n opacity: 0;\n }\n\n &:active,\n &.active,\n &:hover {\n &:after {\n content: \"\";\n display: block;\n opacity: 1;\n }\n }\n}\n\n.link-simple {\n transition: var(--link-simple-transition);\n text-decoration: none;\n padding-bottom: 3px;\n\n &:after {\n transition: var(--link-simple-transition);\n width: 1%;\n height: 2px;\n background: currentcolor;\n display: none !important;\n }\n\n &:active,\n &.active,\n &:hover {\n &:after {\n width: 100%;\n height: 2px;\n }\n }\n}\n","@import \"~getbasecore/src/components/atoms/Link/core_link.scss\";\n@import \"~getbasecore/src/components/atoms/LinkSimple/core_link-simple.scss\";\n\n.link-simple {\n --link-simple-transition: 0.5s;\n}\n\n// @mixin generate-link-simple($name, $color, $color-hover, $color-disabled, $font-weight){\n\n@include generate-link-simple(\n 1,\n var(--blue1),\n var(--blue2),\n var(--color-disabled),\n 700\n);\n",".embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n padding-bottom: 56.25%;\n &__item {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n }\n}\n","//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n\n// --------------------------------------------------\n// Tamaños\n// --------------------------------------------------\n\n// Comentado por incompatibilidad con IE11 y ya no ser necesario\n// Permitimos colorear los iconos\n// .icon use>svg path para solventar Firefox BUG\n//svg path,\n//.icon use>svg path {\n// fill: currentColor;\n//}\n\nsvg.icon.icon.icon {\n vertical-align: middle;\n &--xs {\n width: var(--icon-xs);\n height: var(--icon-xs);\n }\n\n &--sm {\n width: var(--icon-sm);\n height: var(--icon-sm);\n }\n\n &--md {\n width: var(--icon-md);\n height: var(--icon-md);\n }\n\n &--lg {\n width: var(--icon-lg);\n height: var(--icon-lg);\n }\n\n &--xl {\n width: var(--icon-xl);\n height: var(--icon-xl);\n }\n}\n\nsvg.icon {\n vertical-align: middle;\n}\n\n@import \"/src/components/atoms/Icon/icon.scss\";\n","//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n@import \"/src/global.scss\";\n@import \"~getbasecore/src/components/atoms/Icon/core_icon.scss\";\n.list {\n li {\n list-style-type: none;\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n //Con bullets\n &--bullets {\n li {\n position: relative;\n }\n & li:before {\n content: \"\";\n position: absolute;\n left: 0;\n }\n }\n\n //Con iconos\n &--icons {\n > * {\n display: table;\n position: relative;\n }\n\n &--xl > * {\n padding-left: calc(var(--icon-xl) + 10px);\n min-height: var(--icon-xl);\n .icon {\n @extend .icon--xl !optional;\n }\n }\n\n &--lg > * {\n padding-left: calc(var(--icon-lg) + 10px);\n min-height: var(--icon-lg);\n .icon {\n @extend .icon--lg !optional;\n }\n }\n &--md > * {\n padding-left: calc(var(--icon-md) + 10px);\n min-height: var(--icon-md);\n .icon {\n @extend .icon--md !optional;\n }\n }\n &--sm > * {\n padding-left: calc(var(--icon-sm) + 10px);\n min-height: var(--icon-sm);\n .icon {\n @extend .icon--sm !optional;\n }\n }\n &--xs > * {\n padding-left: calc(var(--icon-xs) + 10px);\n min-height: var(--icon-xs);\n .icon {\n @extend .icon--xs !optional;\n }\n }\n\n > * > div.text {\n display: table-cell;\n vertical-align: middle;\n }\n .icon {\n position: absolute;\n left: 0;\n top: 0;\n text-align: center;\n }\n }\n\n &--inline {\n display: inline-block;\n > li {\n display: inline-block;\n margin-bottom: 0;\n }\n }\n}\n\n.desc-list {\n dt {\n }\n dd {\n }\n\n &--horizontal {\n dt {\n float: left;\n text-align: right;\n overflow: hidden;\n clear: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n @media (max-width: $screen-xs-max) {\n float: none;\n text-align: left;\n }\n }\n }\n}\n\n//Order list\nol.list {\n counter-reset: section;\n\n li {\n list-style-type: none;\n position: relative;\n }\n\n li::before {\n content: counter(section);\n counter-increment: section;\n display: inline-block;\n position: absolute;\n }\n}\n\n.list {\n margin-bottom: var(--list-mb);\n\n li {\n margin-bottom: var(--list-li-mb);\n }\n\n //Con bullets\n &--bullets {\n li {\n padding-left: calc(var(--list-bullets-size) * 2);\n }\n & li:before {\n left: 0;\n top: var(--list-bullets-top);\n width: var(--list-bullets-size);\n height: var(--list-bullets-size);\n border-radius: 100%;\n background: var(--list-bullets-color);\n }\n }\n}\n\n.desc-list {\n margin-bottom: var(--desc-list-mb);\n dt {\n font-weight: bold;\n margin-bottom: var(--desc-list-dt-mb);\n }\n dd {\n margin-bottom: var(--desc-list-dd-mb);\n }\n\n &--horizontal {\n dt {\n width: var(--desc-list-dt-width);\n @media (max-width: $screen-xs-max) {\n width: 100%;\n }\n }\n\n dd {\n margin-left: calc(var(--desc-list-dt-width) + 20px);\n\n @media (max-width: $screen-xs-max) {\n margin-left: 0;\n }\n }\n }\n}\n\n//Order lists\nol.list {\n padding-left: var(--ol-padding);\n li::before {\n left: -var(--ol-padding);\n }\n}\n@import \"/src/components/atoms/List/list.scss\";\n",".list {\n --list-mb: var(--margin3);\n --list-li-mb: var(--margin2);\n --list-bullets-size: 6px;\n --list-bullets-top: 5px;\n --list-bullets-color: var(--color-bg-primary);\n --desc-list-mb: var(--margin1);\n --desc-list-dt-mb: 5px;\n --desc-list-dd-mb: var(--margin1);\n --desc-list-dt-width: 160px;\n --ol-padding: 0px;\n}\n\nol.list li::before {\n margin-right: 10px;\n position: static;\n}\n\nol.list {\n text-align: center;\n margin-bottom: 0;\n}\n","//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n//Loading circular\n.loader-circle {\n position: relative;\n text-indent: -9999em;\n transform: translateZ(0);\n animation: load8 1s infinite linear;\n}\n.loader-circle,\n.loader-circle:after {\n border-radius: 50%;\n}\n@-webkit-keyframes load8 {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes load8 {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.loader-circle {\n margin-bottom: var(--loader-circle-mb);\n font-size: 10px;\n border-top: var(--loader-circle-border) solid rgba(255, 255, 255, 0.2);\n border-right: var(--loader-circle-border) solid rgba(255, 255, 255, 0.2);\n border-bottom: var(--loader-circle-border) solid rgba(255, 255, 255, 0.2);\n border-left: var(--loader-circle-border) solid var(--loader-circle-color);\n}\n.loader-circle,\n.loader-circle:after {\n width: var(--loader-circle-diameter);\n height: var(--loader-circle-diameter);\n}\n\n@import \"/src/components/atoms/LoaderCircle/loader-circle.scss\";\n",".loader-circle {\n --loader-circle-diameter: 10rem;\n --loader-circle-border: 1.1rem;\n --loader-circle-color: var(--color-danger);\n --loader-circle-mb: var(--margin3);\n}\n","//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n@mixin generate-progress(\n $name,\n $progress-color,\n $progress-bg,\n $progress-value-bg\n) {\n .progress--#{$name} {\n &::-webkit-progress-bar {\n background-color: $progress-bg;\n }\n\n &::-webkit-progress-value {\n transition: width 1s;\n background-color: $progress-value-bg;\n }\n\n &::-moz-progress-bar {\n background-color: $progress-value-bg;\n }\n\n //legacy\n background-color: $progress-bg;\n\n span {\n background-color: $progress-value-bg;\n color: $progress-color;\n }\n }\n}\n\n.progress {\n width: 100%;\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border: none;\n\n //legacy progress value\n span {\n display: block;\n height: 100%;\n text-align: center;\n }\n}\n\n.progress {\n height: var(--progress-height);\n margin-bottom: var(--progress-mb);\n transition: var(--progress-transition);\n\n //legacy progress value\n span {\n font-size: var(--progress-font-size);\n line-height: var(--progress-height);\n }\n}\n\n@import \"/src/components/atoms/ProgressBar/progress-bar.scss\";\n",".progress {\n --progress-height: 20px;\n --progress-mb: var(--margin3);\n --progress-bg: var(--color-border-1);\n --progress-color: white;\n --progress-font-size: 12px;\n --progress-transition: width 0.6s ease;\n}\n\n// @mixin generate-progress($name, $progress-color, $progress-bg, $progress-value-bg)\n@include generate-progress(\n success,\n white,\n var(--progress-bg),\n var(--color-success)\n);\n","@import \"/src/global.scss\";\n.form--simple {\n label {\n margin-bottom: var(--form-label-mb);\n }\n\n .form__group {\n position: relative;\n // display: flex;\n // align-items: center;\n\n .form__help {\n float: right;\n font-size: var(--form-help-text-size);\n padding: var(--form-help-padding);\n }\n\n > .form__addon {\n border-radius: var(--form-control-border-radius);\n }\n\n .form__help {\n float: right;\n font-size: var(--form-help-text-size);\n padding: var(--form-help-padding);\n }\n\n &--success,\n &--info,\n &--warning,\n &--danger {\n }\n\n //Validaciones\n &--success {\n label,\n input,\n select,\n textarea {\n color: var(--color-success);\n border-color: var(--color-success);\n }\n .form__group__help {\n color: var(--color-success);\n }\n svg {\n fill: var(--color-success);\n }\n }\n &--info {\n label,\n input,\n select,\n textarea {\n background: var(--color-info);\n border-color: var(--color-info);\n }\n .form__group__help {\n color: var(--color-info);\n }\n svg {\n fill: var(--color-info);\n }\n }\n &--warning {\n label,\n input,\n select,\n textarea {\n color: var(--color-warning);\n border-color: var(--color-warning);\n }\n .form__group__help {\n color: var(--color-warning);\n }\n svg {\n fill: var(--color-warning);\n }\n }\n &--danger {\n label,\n input,\n select,\n textarea {\n color: var(--color-danger);\n border-color: var(--color-danger);\n }\n .form__group__help {\n color: var(--color-danger);\n }\n svg {\n fill: var(--color-danger);\n }\n }\n //icono validación\n .form__icon {\n top: var(--form-icon-top);\n svg {\n width: var(--form-icon-size);\n height: var(--form-icon-size);\n\n right: var(--form-icon-right);\n }\n }\n }\n\n .form__control,\n select,\n textarea {\n border: var(--form-control-border);\n border-radius: var(--form-control-border-radius);\n box-shadow: var(--form-control-box-shadow);\n padding: var(--form-control-padding);\n background: var(--form-control-bg);\n &:focus {\n background-color: var(--form-control-bg-hover);\n border: var(--form-control-border-hover);\n }\n }\n\n select {\n padding-right: 20px;\n background-color: var(--form-control-bg);\n appearance: none;\n\n &:focus {\n background: var(--form-control-bg-hover);\n border: var(--form-control-border-hover);\n }\n }\n\n // svg {\n // position: absolute;\n // right: 12px;\n // width: 19px;\n // height: 19px;\n // }\n}\n\n.form--simple {\n margin-bottom: var(--form-mb);\n\n label {\n margin-bottom: var(--form-label-mb);\n }\n\n input + label {\n margin-bottom: 0;\n }\n\n .form__group {\n .form__help {\n float: right;\n font-size: var(--form-help-text-size);\n padding: var(--form-help-padding);\n }\n\n > .form__addon {\n padding: 0 20px;\n border-radius: var(--form-control-border-radius);\n margin-bottom: 0;\n }\n\n .form__help {\n float: right;\n font-size: var(--form-help-text-size);\n padding: var(--form-help-padding);\n }\n\n &--success,\n &--info,\n &--warning,\n &--danger {\n }\n\n //Validaciones\n &--success {\n label,\n input,\n select,\n textarea {\n color: var(--color-success);\n border-color: var(--color-success);\n }\n .form__group__help,\n .form__error {\n color: var(--color-success);\n }\n svg {\n fill: var(--color-success);\n }\n }\n &--info {\n label,\n input,\n select,\n textarea {\n background: var(--color-info);\n border-color: var(--color-info);\n }\n .form__group__help,\n .form__error {\n color: var(--color-info);\n }\n svg {\n fill: var(--color-info);\n }\n }\n &--warning {\n label,\n input,\n select,\n textarea {\n color: var(--color-warning);\n border-color: var(--color-warning);\n }\n .form__group__help,\n .form__error {\n color: var(--color-warning);\n }\n svg {\n fill: var(--color-warning);\n }\n }\n &--danger {\n label,\n input,\n select,\n textarea {\n color: var(--color-danger);\n border-color: var(--color-danger);\n }\n .form__group__help,\n .form__error {\n color: var(--color-danger);\n }\n svg {\n fill: var(--color-danger);\n }\n }\n //icono validación\n .form__icon {\n top: var(--form-icon-top);\n svg {\n width: var(--form-icon-size);\n height: var(--form-icon-size);\n\n right: var(--form-icon-right);\n }\n }\n }\n\n .form__control,\n select,\n textarea {\n border: var(--form-control-border);\n border-radius: var(--form-control-border-radius);\n box-shadow: var(--form-control-box-shadow);\n padding: var(--form-control-padding);\n background: var(--form-control-bg);\n &:focus {\n background-color: var(--form-control-bg-hover);\n border: var(--form-control-border-hover);\n }\n }\n\n select {\n padding-right: 40px;\n background: var(--form-select-caret) no-repeat;\n background-size: 100% 100%;\n background-color: var(--form-control-bg);\n background-size: var(--form-select-caret-size) var(--form-select-caret-size);\n background-position: var(--form-select-caret-position);\n -moz-appearance: none;\n &:focus {\n background: var(--form-select-caret) no-repeat;\n background-size: 100% 100%;\n background-size: var(--form-select-caret-size)\n var(--form-select-caret-size);\n background-position: var(--form-select-caret-position);\n\n background-color: var(--form-control-bg-hover);\n border: var(--form-control-border-hover);\n }\n }\n}\n\n@import \"/src/components/atoms/FormInputSimple/form-input-simple.scss\";\n",".form--simple {\n --form-control-border: 1px solid var(--brown-grey);\n --form-mb: var(--margin3);\n --form-label-mb: var(--margin1);\n --form-control-border-radius: 0;\n --form-control-padding: 4px 10px;\n --form-control-box-shadow: none;\n --form-control-bg: white;\n --form-control-border-hover: 1px solid var(--blue1);\n --form-control-bg-hover: white;\n\n --form-help-padding: 12px 0;\n --form-help-text-size: 12px;\n\n --form-icon-size: 32px;\n --form-icon-right: 10px;\n --form-icon-top: 25px;\n --form-select-caret: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxMCIgdmlld0JveD0iMCAwIDE2IDEwIj4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgZmlsbD0iIzY2NiI+CiAgICAgICAgICAgIDxnPgogICAgICAgICAgICAgICAgPGc+CiAgICAgICAgICAgICAgICAgICAgPGc+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zLjkxNyA4Ljg4TDUuODc1IDcgMTEuNzUgMTIuNjQyIDE3LjYyNSA3LjAwMiAxOS41ODMgOC44ODIgMTEuNzUgMTYuNDAyeiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTU2OSAtMTQ5NikgdHJhbnNsYXRlKDExMiAxMDgxKSB0cmFuc2xhdGUoMjYyIDM5MSkgdHJhbnNsYXRlKDE5MS4xMzUgMTcpIi8+CiAgICAgICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4K\");\n --form-select-caret-size: 16px;\n --form-select-caret-position: right 12px center;\n}\n","@import \"/src/global.scss\";\n//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n// --------------------------------------------------\n// Radio\n// --------------------------------------------------\n\n.form__group > .radio-simple {\n user-select: none;\n cursor: pointer;\n display: inline-block;\n\n input {\n @include show-sr();\n }\n\n // Unchecked\n label {\n position: relative !important;\n cursor: pointer;\n pointer-events: all;\n //Unset sr-only\n position: relative;\n width: auto;\n height: auto;\n padding: auto;\n margin: auto;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: auto;\n\n &:before {\n position: absolute;\n content: \"\";\n display: inline-block;\n box-sizing: border-box;\n }\n &:after {\n position: absolute;\n content: \"\";\n display: inline-block;\n border-radius: 100%;\n opacity: 0;\n box-sizing: border-box;\n }\n }\n\n //Checked\n input:checked + label {\n &:before {\n }\n &:after {\n opacity: 1;\n }\n }\n}\n\n// --------------------------------------------------\n// Mixin tamaños de radios\n// --------------------------------------------------\n\n@mixin radio-simple-sizes($size, $radio-simple-size) {\n .radio-simple--#{$size} {\n // Unchecked\n label {\n padding-left: $radio-simple-size + $radio-simple-size/2;\n line-height: $radio-simple-size;\n //Borde exterior\n &:before {\n left: 0;\n width: $radio-simple-size;\n height: $radio-simple-size;\n }\n //Elemento interior\n &:after {\n left: $radio-simple-size/2;\n top: $radio-simple-size/2;\n }\n }\n\n //Checked\n input:checked + label {\n //Elemento interior\n &:after {\n left: $radio-simple-size/8;\n top: $radio-simple-size/8;\n width: $radio-simple-size - $radio-simple-size/4;\n height: $radio-simple-size - $radio-simple-size/4;\n }\n }\n }\n}\n\n.form__group > .radio-simple {\n & + .radio-simple {\n margin-top: var(--margin1);\n }\n\n input:focus + label:before {\n border: var(--radio-simple-fosus);\n }\n\n // Unchecked\n label {\n padding-left: calc(var(--radio-simple-size) + var(--radio-simple-size) / 2);\n\n line-height: var(--radio-simple-size);\n\n //Unset sr-only\n position: relative;\n width: auto;\n height: auto;\n padding: auto;\n margin: auto;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: auto;\n\n //Borde exterior\n &:before {\n left: 0;\n width: var(--radio-simple-size);\n height: var(--radio-simple-size);\n border: var(--radio-simple-border);\n border-radius: 100%;\n }\n //Elemento interior\n &:after {\n left: var(--radio-simple-size/2);\n top: var(--radio-simple-size/2);\n width: 2px;\n height: 2px;\n background: var(--radio-simple-inner-bg);\n border-radius: 100%;\n transition: var(--radio-simple-inner-transition-uncheck);\n }\n }\n\n //Checked\n input:checked + label {\n //Borde exterior\n &:before {\n }\n //Elemento interior\n &:after {\n left: var(--radio-simple-inner-left);\n top: var(--radio-simple-inner-left);\n width: var(--radio-simple-inner-width);\n height: var(--radio-simple-inner-width);\n background: var(--radio-simple-inner-bg);\n border-radius: 100%;\n transform-origin: center;\n transition: var(--radio-simple-inner-transition-check);\n }\n }\n}\n\n@import \"/src/components/atoms/FormRadioSimple/form-radio-simple.scss\";\n","//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n// ----------------------------------------------------------------------------------------------------\n//\n// Mixins\n//\n// -----------------------------------------------------------------------------------------------------\n\n/*\nText truncate\n*/\n@mixin text-truncate() {\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/*\n\nScreen reader only\n\n*/\n\n@mixin show-sr() {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n\n/*\nImg no responsive \n*/\n@mixin img-no-responsive() {\n width: auto;\n max-width: auto;\n}\n\n/*\nSafari Flicker Fix\n*/\n\n@mixin webkit-anim-fix() {\n -webkit-transform: translate3d(0, 0, 0);\n}\n\n/*\nClean last margin\n*/\n\n@mixin clean-last-margin() {\n *:last-child {\n margin-bottom: 0 !important;\n }\n}\n","// --------------------------------------------------\n// Radio\n// --------------------------------------------------\n.radio-simple {\n --radio-simple-size: 16px;\n --radio-simple-size-xs: 10px;\n --radio-simple-size-sm: 15px;\n --radio-simple-size-lg: 30px;\n --radio-simple-border: 1px solid var(--grey1);\n --radio-simple-fosus: 1px solid var(--grey1);\n --radio-simple-inner-width: 8px;\n --radio-simple-inner-left: 4px;\n --radio-simple-inner-top: 4px;\n --radio-simple-inner-bg: var(--blue1);\n --radio-simple-inner-transition-check: all 0.2s ease-in-out;\n --radio-simple-inner-transition-uncheck: all 0.2s ease-in-out;\n}\n@include radio-simple-sizes(xs, var(--radio-simple-size-xs));\n@include radio-simple-sizes(sm, var(--radio-simple-size-sm));\n@include radio-simple-sizes(lg, var(--radio-simple-size-lg));\n","@import \"/src/global.scss\";\n//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n// --------------------------------------------------\n// Checkbox\n// --------------------------------------------------\n\n.checkbox-simple {\n user-select: none;\n cursor: pointer;\n display: inline-block;\n input {\n @include show-sr();\n }\n\n // Unchecked\n label {\n position: relative;\n cursor: pointer;\n &:before {\n position: absolute;\n content: \"\";\n display: inline-block;\n box-sizing: border-box;\n }\n &:after {\n position: absolute;\n content: \"\";\n display: inline-block;\n border-radius: 100%;\n opacity: 0;\n box-sizing: border-box;\n }\n }\n\n //Checked\n input:checked + label {\n &:before {\n }\n &:after {\n opacity: 1;\n }\n }\n}\n\n// --------------------------------------------------\n// Mixin tamaños de checkboxes\n// --------------------------------------------------\n\n@mixin checkbox-simple-sizes($size, $checkbox-simple-size) {\n .checkbox-simple--#{$size} {\n // Unchecked\n label {\n padding-left: $checkbox-simple-size + $checkbox-simple-size/2;\n line-height: $checkbox-simple-size;\n //Borde exterior\n &:before {\n width: $checkbox-simple-size;\n height: $checkbox-simple-size;\n }\n //Elemento interior\n &:after {\n left: $checkbox-simple-size/2;\n top: $checkbox-simple-size/2;\n }\n }\n\n //Checked\n input:checked + label {\n //Elemento interior\n &:after {\n width: $checkbox-simple-size;\n height: $checkbox-simple-size;\n }\n }\n }\n}\n\n.form__group > .checkbox-simple {\n .form--inline & {\n display: inline-block;\n vertical-align: middle;\n margin: 0;\n }\n\n input:focus + label:before {\n border: var(--checkbox-simple-focus);\n }\n\n // Unchecked\n label {\n padding-left: calc(\n var(--checkbox-simple-size) + var(--checkbox-simple-size) / 2\n );\n line-height: var(--checkbox-simple-size);\n\n //Borde exterior\n &:before {\n left: 0;\n width: var(--checkbox-simple-size);\n height: var(--checkbox-simple-size);\n border: var(--checkbox-simple-border);\n\n border-radius: 0px;\n }\n //Elemento interior\n &:after {\n top: 4px;\n left: 4px;\n width: 1px;\n height: 1px;\n\n transition: var(--checkbox-simple-inner-transition-uncheck);\n }\n }\n\n //Checked\n\n input:checked + label {\n //Borde exterior\n &:before {\n border: var(--checkbox-simple-border-check);\n background: var(--checkbox-simple-inner-bg-check);\n }\n //Elemento interior\n &:after {\n top: -2px;\n left: 0px;\n width: var(--checkbox-simple-size);\n height: var(--checkbox-simple-size);\n border-radius: 0;\n background: var(--checkbox-simple-tick) no-repeat;\n background-size: 100% 100%;\n\n transition: var(--checkbox-simple-inner-transition-check);\n }\n }\n}\n\n//@mixin checkbox-simple-sizes(var(--size,$checkbox-simple-size));\n\n@include checkbox-simple-sizes(xs, var(--checkbox-simple-size-xs));\n@include checkbox-simple-sizes(sm, var(--checkbox-simple-size-sm));\n@include checkbox-simple-sizes(lg, var(--checkbox-simple-size-lg));\n\n@import \"/src/components/atoms/FormCheckboxSimple/form-checkbox-simple.scss\";\n","// --------------------------------------------------\n// Checkbox\n// --------------------------------------------------\n.checkbox-simple {\n --checkbox-simple-size: 20px;\n --checkbox-simple-size-xs: 10px;\n --checkbox-simple-size-sm: 15px;\n --checkbox-simple-size-lg: 30px;\n --checkbox-simple-border: 1px solid var(--grey1);\n --checkbox-simple-border-check: var(--checkbox-simple-border);\n --checkbox-simple-focus: 1px solid var(--grey1);\n --checkbox-simple-inner-bg: #fff;\n --checkbox-simple-inner-bg-check: var(--checkbox-simple-inner-bg);\n --checkbox-simple-inner-transition-check: opacity 0.4s ease-in-out;\n --checkbox-simple-inner-transition-uncheck: opacity 0.4s ease-in-out;\n --checkbox-simple-tick: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4gICAgPGcgZmlsbD0iYXV0byIgZmlsbC1ydWxlPSJldmVub2RkIj4gICAgICAgIDxwYXRoIGZpbGw9ImF1dG8iIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTEwLjUzNiAxNi4xOTJsNi4zNjMtNi4zNjRhMSAxIDAgMSAxIDEuNDE1IDEuNDE1bC03LjA3MSA3LjA3YTEgMSAwIDAgMS0xLjQxNSAwbC0zLjUzNS0zLjUzNWExIDEgMCAwIDEgMS40MTQtMS40MTRsMi44MjkgMi44Mjh6Ii8+ICAgIDwvZz48L3N2Zz4=\");\n}\n","@mixin generate-track() {\n height: var(--form-slider-track-height);\n cursor: pointer;\n transition: var(--form-slider-track-transition);\n background: var(--form-slider-track-bg);\n border-radius: 0;\n}\n\n@mixin generate-thumb() {\n border: 0;\n height: var(--form-slider-thumb-size);\n width: var(--form-slider-thumb-size);\n box-sizing: border-box;\n max-height: var(--form-slider-thumb-size);\n max-width: var(--form-slider-thumb-size);\n border-radius: 100%;\n border: var(--form-slider-thumb-border-size) solid\n var(--form-slider-thumb-border-color);\n background: var(--form-slider-thumb-bg);\n cursor: pointer;\n -webkit-appearance: none;\n\n margin-top: calc(\n ((var(--form-slider-track-height)) / 2) -\n (var(--form-slider-thumb-size) / 2)\n );\n\n box-shadow: var(--form-slider-thumb-shadow);\n}\n\ninput[type=\"range\"] {\n padding: 0 !important;\n\n &::-webkit-slider-runnable-track {\n @include generate-track();\n }\n\n &::-webkit-slider-thumb {\n @include generate-thumb();\n }\n\n &:focus::-webkit-slider-runnable-track {\n background: var(--form-slider-track-bg-hover);\n }\n\n &::-moz-range-track {\n @include generate-track();\n }\n\n &::-moz-range-thumb {\n @include generate-thumb();\n }\n\n &::-ms-track {\n @include generate-track();\n }\n //\n // &::-ms-fill-lower {\n // background: darken($track-color, $contrast);\n // border: $track-border-width solid $track-border-color;\n // border-radius: $track-radius * 2;\n // }\n //\n // &::-ms-fill-upper {\n // background: $track-color;\n // border: $track-border-width solid $track-border-color;\n // border-radius: $track-radius * 2;\n // }\n //\n &::-ms-thumb {\n @include generate-thumb();\n }\n //\n // &:focus::-ms-fill-lower {\n // background: $track-color;\n // }\n //\n // &:focus::-ms-fill-upper {\n // background: lighten($track-color, $contrast);\n // }\n}\n\n@import \"/src/components/atoms/FormInputRangeSimple/form-input-range-simple.scss\";\n","input[type=\"range\"] {\n --form-slider-track-height: 10px;\n --form-slider-track-bg: var(--grey3);\n --form-slider-track-bg-hover: var(--grey3);\n --form-slider-track-border-radius: 0;\n --form-slider-track-transition: all 0.2s ease;\n --form-slider-thumb-size: 30px;\n --form-slider-thumb-border-size: 0px;\n --form-slider-thumb-bg: var(--blue1);\n --form-slider-thumb-border-color: green;\n --form-slider-thumb-border-radius: 100%;\n --form-slider-thumb-shadow: black;\n}\n",".section {\n --color-content: var(--color-highlight);\n}\n.section {\n // padding-bottom: 32px;\n\n &--dark {\n .section__content {\n padding-bottom: 100px;\n }\n svg {\n fill: #222;\n }\n .section__content {\n background: #222;\n &:before {\n background: #222;\n }\n }\n }\n\n &--early {\n .section__content {\n padding-top: 100px;\n }\n .h1,\n .h2,\n .h3,\n .h4,\n ol,\n li,\n p {\n color: var(--color-text-2) !important;\n }\n svg {\n fill: rgb(251, 225, 109);\n }\n .section__content {\n background: var(--color-bg-5);\n &:before {\n background: var(--color-bg-5);\n }\n }\n }\n\n &--igg {\n .section__content {\n padding-top: 100px;\n }\n .h1,\n .h2,\n .h3,\n .h4,\n ol,\n li,\n p {\n color: var(--white) !important;\n }\n svg {\n fill: rgb(251, 225, 109);\n }\n .section__content {\n background: var(--color-bg-6);\n &:before {\n background: var(--color-bg-6);\n }\n }\n }\n\n &__wave {\n fill: var(--color-content);\n }\n\n &__content {\n background: var(--color-content);\n color: #fff;\n position: relative;\n &:before {\n content: \"\";\n background: var(--color-content);\n height: 8px;\n width: 100%;\n display: block;\n position: absolute;\n top: -8px;\n }\n }\n\n .h1,\n .h2,\n .h3,\n .h4,\n p {\n color: #fff;\n text-align: center;\n }\n}\n\n.lamp {\n display: none !important;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n height: 100vh;\n height: 100vh;\n width: 100vw;\n min-width: 100vw;\n z-index: -1;\n}\n\n.lava {\n filter: url(\"#goo\");\n position: absolute;\n height: 100%;\n width: 100%;\n top: 0;\n left: 0;\n}\n\n.blob {\n border-radius: 50%;\n background: var(--color-highlight);\n\n /* Other sample colors:\n\tOrange: #e8630a\n\tPink: #EA3281\n\tFuscia: #E71669\n\tPurple: #661BAC\n\tYellow: #FDC600\n\tKermit green: #75AC25\n\tLight blue: #3283B5\n\tDark blue: #0A5D9A\n\tGunmetal: #232F37\n\tBGLight: #1B2735\n\tBGDark: #090a0f\n\tWant more colors? check out https://coolors.co/ for inspiration.\n\t*/\n position: absolute;\n}\n\n.blob.top {\n border-radius: 50%;\n width: 100%;\n height: 4%;\n top: -3%;\n left: 0;\n}\n.blob.bottom {\n border-radius: 50%;\n width: 100%;\n height: 4%;\n bottom: -3%;\n left: 0;\n}\n.blob:nth-child(1) {\n width: 200px;\n height: 200px;\n left: 35%;\n bottom: -15%;\n\n animation: wobble 4s ease-in-out alternate infinite, blob-one ease-in-out 13s infinite;\n}\n.blob:nth-child(2) {\n width: 330px;\n height: 330px;\n right: 24%;\n bottom: -65%;\n\n animation: wobble 5s ease-in-out alternate infinite, blob-two ease-in-out 22s infinite;\n}\n.blob:nth-child(3) {\n width: 150px;\n height: 150px;\n bottom: -15%;\n left: 34%;\n\n animation: wobble 6s ease-in-out alternate infinite, blob-three ease-in-out 16s infinite;\n}\n.blob:nth-child(4) {\n width: 235px;\n height: 235px;\n bottom: -19%;\n left: 30%;\n\n animation: wobble 7s ease-in-out alternate infinite, blob-four ease-in-out 12s infinite;\n}\n.blob:nth-child(4) {\n width: 235px;\n height: 235px;\n bottom: -19%;\n left: 30%;\n animation: wobble 8s ease-in-out alternate infinite, blob-four ease-in-out 12s infinite;\n}\n.blob:nth-child(5) {\n width: 55px;\n height: 55px;\n bottom: -25%;\n left: 34%;\n\n animation: wobble 9s ease-in-out alternate infinite, blob-five ease-in-out 32s infinite;\n}\n.blob:nth-child(6) {\n width: 35px;\n height: 35px;\n bottom: -25%;\n right: 34%;\n\n animation: wobble 10s ease-in-out alternate infinite, blob-six ease-in-out 12s infinite;\n}\n.blob:nth-child(7) {\n width: 435px;\n height: 435px;\n bottom: -85%;\n right: 40%;\n\n animation: wobble 11s ease-in-out alternate infinite, blob-seven ease-in-out 32s infinite;\n}\n@keyframes blob-one {\n 0%,\n 100% {\n transform: translatey(0);\n }\n 50% {\n transform: translatey(-700%);\n }\n}\n\n@keyframes blob-two {\n 0%,\n 100% {\n transform: translatey(0);\n }\n 50% {\n transform: translatey(-420%);\n }\n}\n\n@keyframes blob-three {\n 0%,\n 100% {\n transform: translatey(0);\n }\n 50% {\n transform: translatey(-305%);\n }\n}\n@keyframes blob-four {\n 0%,\n 100% {\n transform: translatey(0);\n }\n 50% {\n transform: translatey(-605%);\n }\n}\n@keyframes blob-five {\n 0%,\n 100% {\n transform: translatey(0);\n }\n 50% {\n transform: translatey(-700%);\n }\n}\n@keyframes blob-six {\n 0%,\n 100% {\n transform: translatey(0);\n }\n 50% {\n transform: translatey(-700%);\n }\n}\n@keyframes blob-seven {\n 0%,\n 100% {\n transform: translatey(0);\n }\n 50% {\n transform: translatey(-300%);\n }\n}\n\n@keyframes wobble {\n 50% {\n border-radius: 42% 58% 70% 30% / 45% 45% 55% 55%;\n }\n 100% {\n border-radius: 38% 52% 75% 36% / 50% 40% 50% 60%;\n }\n}\n","//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n\n.modal {\n z-index: 99;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100vw;\n height: 100vh;\n margin: auto;\n transition: var(--modal-transition);\n background-color: var(--modal-background);\n backdrop-filter: var(--modal-background-filter);\n opacity: 0;\n pointer-events: none;\n display: flex;\n justify-content: center;\n align-items: center;\n &.is-shown {\n opacity: 1;\n transition: var(--modal-transition);\n pointer-events: all;\n .modal__box {\n margin-bottom: 0;\n transition: var(--modal-transition);\n }\n }\n\n &__box {\n -webkit-app-region: no-drag;\n margin-bottom: var(--modal-box-initial-position);\n background: var(--modal-box-background);\n border-radius: var(--modal-box-radius);\n padding: var(--modal-box-padding);\n display: flex;\n flex-direction: column;\n border: var(--modal-box-border);\n }\n\n &__header {\n margin-bottom: var(--modal-header-mb);\n position: relative;\n }\n &__close {\n position: absolute;\n top: 0;\n right: 0;\n line-height: 0;\n }\n &__body {\n flex: 1;\n max-height: 50vh;\n overflow: auto;\n margin-bottom: var(--modal-body-mb);\n }\n &__footer {\n text-align: var(--modal-footer-align);\n .btn-simple {\n margin-bottom: 0;\n }\n }\n &--xs {\n .modal__box {\n max-width: var(--modal-xs-width);\n max-height: var(--modal-xs-height);\n }\n }\n &--sm {\n .modal__box {\n width: var(--modal-sm-width);\n }\n }\n &--full {\n .modal__header {\n display: none;\n }\n .modal__box {\n padding: 0;\n width: 100vw;\n height: 100vh;\n border: 0;\n }\n .modal__body {\n max-height: 100%;\n overflow: hidden;\n }\n .modal__footer {\n display: none;\n }\n }\n}\n\n@import \"./modal.scss\";\n",".modal {\n --modal-transition: 0.5s;\n --modal-background: rgba(255, 255, 255, 0.1);\n --modal-background-filter: blur(10px);\n --modal-box-initial-position: -200vh;\n --modal-box-background: #fff;\n --modal-box-radius: 8px;\n --modal-box-padding: 20px;\n --modal-box-border: 1px solid #cbcbcb;\n --modal-header-mb: 24px;\n --modal-body-mb: 24px;\n --modal-footer-align: center;\n --modal-xs-width: 40vw;\n --modal-xs-height: 80vh;\n --modal-sm-width: 50vw;\n}\n\n.modal__close {\n line-height: inherit;\n color: #fff;\n font-size: 2rem;\n top: 0.6rem;\n right: 1rem;\n}\n\n.modal--windows {\n .modal__box {\n padding: 0;\n width: 75vw;\n overflow: hidden;\n }\n .modal__header {\n text-align: center;\n padding: 20px 0;\n background: #222;\n .h4 {\n color: #fff;\n margin-bottom: 0;\n }\n }\n .modal__body {\n padding: 0 20px;\n display: flex;\n @media (max-width: 767px) {\n display: block;\n }\n justify-content: space-around;\n max-height: 80vh;\n text-align: center;\n & > div {\n flex-basis: 50%;\n }\n @media (max-width: 767px) {\n & > div + div {\n margin-top: 50px;\n }\n }\n .btn-simple {\n margin-bottom: 0;\n }\n }\n}\n","// ----------------------------------------------------------------------------------------------------\n//\n// CSS Reset\n//\n// -----------------------------------------------------------------------------------------------------\n\n/* http://meyerweb.com/eric/tools/css/reset/ \n v2.0 | 20110126\n License: none (public domain)\n*/\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n/* HTML5 display-role reset for older browsers */\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\nsection {\n display: block;\n}\nbody {\n line-height: 1;\n}\nol,\nul {\n list-style: none;\n}\nblockquote,\nq {\n quotes: none;\n}\nblockquote:before,\nblockquote:after,\nq:before,\nq:after {\n content: \"\";\n content: none;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\n// --------------------------------------------------\n// Firefox buttons\n// --------------------------------------------------\n\n::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n// --------------------------------------------------\n// Webkit Input Number Fix\n// --------------------------------------------------\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\n// --------------------------------------------------\n// Fix input appearence on iOS\n// --------------------------------------------------\ninput,\ntextarea,\nselect {\n -webkit-appearance: none;\n}\n\n// --------------------------------------------------\n// Outline Fix\n// --------------------------------------------------\na:focus,\na:active,\nbutton::-moz-focus-inner,\ninput[type=\"reset\"]::-moz-focus-inner,\ninput[type=\"button\"]::-moz-focus-inner,\ninput[type=\"submit\"]::-moz-focus-inner,\nselect::-moz-focus-inner,\ninput[type=\"file\"] > input[type=\"button\"]::-moz-focus-inner {\n border: 0;\n outline: 0;\n}\n\n// --------------------------------------------------\n// Fix \"highlight color click\" en iOS\n// --------------------------------------------------\n* {\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\n// --------------------------------------------------\n// Firefox hiding number spinner button\n// --------------------------------------------------\n\ninput[type=\"number\"]::-webkit-outer-spin-button,\ninput[type=\"number\"]::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\ninput[type=\"number\"] {\n -moz-appearance: textfield;\n}\n\n// --------------------------------------------------\n// iPhone X Notch\n// --------------------------------------------------\n@media only screen and (orientation: landscape) {\n .wrapper {\n padding-left: env(safe-area-inset-left);\n padding-right: env(safe-area-inset-right);\n }\n}\n\n// --------------------------------------------------\n// Content render improvement\n// --------------------------------------------------\nsection {\n content-visibility: auto;\n contain-intrinsic-size: 100vh;\n}\n\n//https://www.smashingmagazine.com/2013/03/tips-and-tricks-for-print-style-sheets/\n@media print {\n @page {\n margin: 2cm;\n }\n\n *,\n *:before,\n *:after,\n *:first-letter,\n p:first-line,\n div:first-line,\n blockquote:first-line,\n li:first-line {\n background: transparent !important;\n color: #000 !important;\n box-shadow: none !important;\n text-shadow: none !important;\n }\n\n body {\n color: #000;\n background: #fff;\n }\n\n footer {\n display: none;\n }\n\n img {\n max-width: 100% !important;\n }\n\n * {\n page-break-inside: avoid;\n }\n\n a[href^=\"http\"]:after {\n content: \" <\" attr(href) \"> \";\n }\n\n a[href^=\"#\"]:after {\n content: \"\";\n }\n}\n\n@media print and (color) {\n * {\n -webkit-print-color-adjust: exact !important;\n print-color-adjust: exact !important;\n }\n}\n","//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n* {\n box-sizing: border-box;\n}\n@import \"/src/utils/grid-layout/grid-layout.scss\";\n\n.container {\n padding-right: calc(var(--grid-gutter) / 2);\n padding-left: calc(var(--grid-gutter) / 2);\n margin-right: auto;\n margin-left: auto;\n min-width: 320px;\n transition: width 0.4s;\n @media (min-width: $screen-sm) {\n width: var(--container-sm);\n }\n\n @media (min-width: $screen-md) {\n width: var(--container-md);\n }\n\n @media (min-width: $screen-lg) {\n width: var(--container-lg);\n }\n\n @media (min-width: $screen-xl) {\n width: var(--container-xl);\n }\n\n &--fluid {\n width: 100%;\n padding: 0;\n }\n\n &--mixed {\n width: 100%;\n max-width: var(--container-grid-mixed-width);\n padding: 0;\n display: block;\n }\n}\n\n.container--grid {\n display: grid;\n grid-template-columns: repeat($columns, minmax(0, 1fr));\n grid-column-gap: var(--grid-gutter);\n\n @media (max-width: $screen-xs-max) {\n grid-template-columns: repeat($columns-xs, minmax(0, 1fr));\n }\n\n > * {\n grid-column-end: span $columns;\n @media (max-width: $screen-xs-max) {\n grid-column-end: span $columns-xs;\n }\n }\n\n &--no-padding {\n grid-column-gap: 0;\n }\n\n &--justify-start {\n justify-content: start;\n }\n\n &--justify-center {\n justify-content: center;\n }\n\n &--justify-stretch {\n justify-content: stretch;\n }\n\n &--justify-end {\n justify-content: end;\n }\n}\n\n@mixin create-grid-layout($size) {\n $creen-size: 1px;\n\n $columns: $columns;\n\n @if $size == \"xs\" {\n $creen-size: 1px;\n $columns: $columns-xs;\n }\n @if $size == \"sm\" {\n $creen-size: $screen-sm;\n }\n @if $size == \"md\" {\n $creen-size: $screen-md;\n }\n @if $size == \"lg\" {\n $creen-size: $screen-lg;\n }\n @if $size == \"xl\" {\n $creen-size: $screen-xl;\n }\n\n // Columns\n @media (min-width: $creen-size) {\n @for $i from 1 through $columns {\n [data-col-#{$size}=\"#{$i}\"] {\n grid-column-end: span $i;\n }\n }\n }\n\n // Column start\n @media (min-width: $creen-size) {\n @for $i from 1 through $columns {\n [data-col-start-#{$size}=\"#{$i}\"] {\n grid-column-start: $i;\n }\n }\n }\n}\n\n@include create-grid-layout(xs);\n@include create-grid-layout(sm);\n@include create-grid-layout(md);\n@include create-grid-layout(lg);\n@include create-grid-layout(xl);\n\n//En XS desactivamos column start\n@media (max-width: $screen-xs-max) {\n [data-col-start-sm],\n [data-col-start-md],\n [data-col-start-lg],\n [data-col-start-xl] {\n grid-column-start: 1;\n }\n}\n","// --------------------------------------------------\n// Grid - CSS vars\n// --------------------------------------------------\n\n:root {\n --grid-gutter: 32px;\n --container-sm: 720px;\n --container-md: 944px;\n --container-lg: 1136px;\n --container-xl: 1248px;\n --container-grid-mixed-width: 1600px;\n}\n\n// --------------------------------------------------\n// Grid - SCSS vars, can not be CSS vars\n// --------------------------------------------------\n$columns: 12;\n$columns-xs: 4;\n\n// --------------------------------------------------\n// Media Queries - SCSS vars, can not be CSS vars\n// --------------------------------------------------\n\n//Mobile First (min)\n$screen-xs: 320px;\n$screen-sm: 768px;\n$screen-md: 992px;\n$screen-lg: 1200px;\n$screen-xl: 1440px;\n\n//Desktop First (max)\n$screen-xs-max: 767px;\n$screen-sm-max: 991px;\n$screen-md-max: 1199px;\n$screen-lg-max: 1439px;\n","//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n\n/*\nZ-index Scale\n*/\n:root {\n --zindex0: 0;\n --zindex1: 100;\n --zindex2: 200;\n --zindex3: 300;\n --zindex4: 400;\n --zindex5: 500;\n --zindex6: 600;\n --zindex7: 700;\n --zindex8: 800;\n --zindex9: 900;\n}\n","@import \"~getbasecore/src/utils/vars/core_vars.scss\";\n:root {\n /*\nMargin Scale\n*/\n --margin1: 0.8rem;\n --margin2: 1.6rem;\n --margin3: 2.4rem;\n --margin4: 3.2rem;\n --margin5: 4rem;\n --margin6: 4.8rem;\n\n --margin-elements: 32px;\n --margin-components: 18rem;\n\n // --------------------------------------------------\n // Icons sizes\n // --------------------------------------------------\n --icon-xl: 128px;\n --icon-lg: 56px;\n --icon-md: 48px;\n --icon-sm: 32px;\n --icon-xs: 24px;\n\n // --------------------------------------------------\n // Inputs & Buttons fixed height inside forms\n // --------------------------------------------------\n --input-height-xs: 56px;\n --input-height-sm: 56px;\n --input-height: 56px;\n --input-height-lg: 56px;\n}\n// --------------------------------------------------\n// Colors - Global Palette\n// --------------------------------------------------\n\n:root {\n --color-success: #99cc33;\n --color-info: #6ea0c6;\n --color-warning: #fb7d0c;\n --color-danger: #ec3457;\n --color-disabled: #afafaf;\n\n --color-text-1: #262626;\n --color-text-2: #444;\n\n --white: #ffffff;\n --anthracite: #262626;\n --black: #000000;\n --grey1: #e6e6e6;\n --grey2: #666666;\n --grey3: #bbbbbb;\n --blue1: #1c69d4;\n --blue2: #0653b6;\n --brown-grey: #979797;\n\n --color-bg-primary: #1c69d4;\n\n --color-text-1: #444;\n --color-text-2: #222;\n --color-text-3: #222;\n --color-text-4: #666666;\n\n // BG colors\n --color-bg-1: #ac30d3;\n --color-bg-2: #09263c;\n --color-bg-3: #99cc33;\n --color-bg-4: #0076d9;\n --color-bg-5: rgb(251, 225, 109);\n --color-bg-6: #c41772;\n --color-bg-7: #e6e6e6;\n --color-border-1: #e3e3e3;\n\n --color-black: #262626;\n --color-brown-grey: #8e8e8e;\n --color-blue-blue: #1c69d4;\n --color-greyish-brown: #4d4d4d;\n --color-very-light-pink: #d8d8d8;\n\n --color-placeholder-1: #e3e3e3;\n\n --color-accordion--hover: #f5f5f5;\n --color-brand: rgb(0, 118, 217);\n\n --color-highlight: var(--color-bg-1);\n}\n.steamOS {\n --color-highlight: var(--color-bg-1);\n}\n\n.Windows {\n --color-highlight: var(--color-bg-4);\n}\n\n.Android {\n --color-highlight: var(--color-bg-3);\n}\n","//\n//\n// Important!!! Only scss vars & mixins are allowed to be imported here.\n// Dont use CSS Variables or regular CSS as this file is loaded in every component\n//\n//\n@import \"./utils/grid-layout/grid-layout.scss\";\n@import \"./utils/mixins/mixins.scss\";\n@import \"./utils/vars/vars.scss\";\n@import \"./utils/animate/animate.scss\";\n\n// --------------------------------------------------\n// Custom Fonts here ! Store them in src/assets/fonts\n//\n// Some examples here\n// https://github.com/matthewgonzalez/fontplop/releases\n// https://google-webfonts-helper.herokuapp.com/fonts/\n//\n// --------------------------------------------------\n@font-face {\n font-family: \"Avenir\";\n src: url(\"fonts/avenir-light-webfont.woff2\");\n font-weight: 100;\n}\n@font-face {\n font-family: \"Avenir\";\n src: url(\"fonts/avenir-roman-webfont.woff2\");\n font-weight: 300;\n}\n@font-face {\n font-family: \"Avenir\";\n src: url(\"fonts/avenir-medium-webfont.woff2\");\n font-weight: bolder;\n}\n","//\n//\n// Hi there! Remember you are not suposed to be here.\n// All customization must be done in _custom_ files!!\n//\n//\n@import \"/src/global.scss\";\n@mixin generate_titles(\n $title-name,\n $font-size,\n $line-height,\n $letter-spacing,\n $font-family,\n $font-weight,\n $color,\n $mb,\n $bg: none,\n $pb: 0,\n $border: 0\n) {\n [class*=\"#{$title-name}\"] {\n display: block;\n font-size: $font-size;\n line-height: $line-height;\n font-family: $font-family;\n font-weight: $font-weight;\n letter-spacing: $letter-spacing;\n color: $color;\n margin-bottom: $mb;\n padding-bottom: $pb;\n border: $border;\n background: $bg;\n }\n}\n\n// --------------------------------------------------\n// Tamaño de fuentes en REM\n// --------------------------------------------------\n\nhtml {\n font-size: 62.5% !important; // 1.6rem = 16px, 20rem = 20px, etc...\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n//Reset a los Hx para que no tengan valores, se les pasará mediante clases\n//h1, h2, h3, h4, h5, h6 { font-size: inherit; margin: 0; width: auto; color: $color-text }\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin: 0;\n text-decoration: none;\n font-size: inherit;\n width: auto;\n}\n\n$body-font-size: 1.5rem;\n$body-font-family: \"OpenSans\";\n$body-text-color: var(--color-text-1);\n$body-selection-bg-color: #0653b6;\n$body-selection-color: white;\n$xs-adjustment: 20%; // 62.5 to match Desktop Size\n$p-mb: var(--margin3);\n$p-capitular-size: 6rem;\n$lead-font-size: 8rem;\n$small-font-size: 1.2rem;\n\n// --------------------------------------------------\n// Custom Fonts in html-start.html !\n//\n// https://github.com/matthewgonzalez/fontplop/releases\n// https://google-webfonts-helper.herokuapp.com/fonts/\n//\n// --------------------------------------------------\n\n// --------------------------------------------------\n// Ajuste de fuentes en responsive\n// --------------------------------------------------\nhtml {\n @media (max-width: $screen-xs-max) {\n font-size: var(--xs-adjustment);\n }\n @media (max-width: $screen-sm-max) {\n font-size: 52%;\n }\n}\n\n// --------------------------------------------------\n// Global font attributes\n// --------------------------------------------------\n\nbody {\n margin: 0;\n font-size: $body-font-size;\n font-family: $body-font-family;\n font-weight: 400;\n color: $body-text-color;\n letter-spacing: -0.2px;\n line-height: 140%;\n @media (max-width: $screen-sm-max) {\n font-size: $body-font-size;\n }\n}\n\n// --------------------------------------------------\n// Text selection\n// --------------------------------------------------\n::selection {\n color: $body-selection-color;\n background: $body-selection-bg-color;\n}\n\n// --------------------------------------------------\n// Text Tags\n// --------------------------------------------------\n\nhr {\n margin: var(--margin3) 0;\n}\n\np {\n margin-bottom: $p-mb;\n line-height: 140%;\n color: $body-text-color;\n &.capitular {\n &::first-letter {\n float: left;\n font-size: $p-capitular-size;\n margin: 0 $body-font-size 1rem 0;\n vertical-align: bottom;\n margin-top: 10px;\n }\n }\n}\n\n.lead {\n font-family: \"Neuton\";\n font-size: $lead-font-size;\n letter-spacing: 0;\n margin-bottom: var(--margin3);\n}\n\nsmall {\n font-size: $small-font-size;\n display: inline-block;\n margin-bottom: var(--margin3);\n line-height: $small-font-size * 1.5;\n color: var(--grey2);\n}\n\nstrong,\nb {\n font-weight: bold;\n}\n\nabbr {\n border-bottom: 1px dotted;\n}\n\nem,\ni {\n font-style: italic;\n}\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n top: -0.5em;\n}\n\nsub {\n top: auto;\n bottom: -0.5em;\n}\n\ncite {\n font-style: italic;\n &:after,\n &:before {\n content: '\"';\n }\n}\n\ncode {\n background: #000;\n color: white;\n padding: 10px;\n font-family: \"Monaco\";\n display: block;\n margin-bottom: var(--margin1);\n}\n\nmark {\n}\n\ndel {\n}\n\nins {\n}\n\nblockquote {\n}\n\naddress {\n}\n\n@import \"/src/components/atoms/Typography/typography.scss\";\n","//@import \"~getbasecore/src/components/atoms/Typography/core_typography.scss\";\n$body-font-size: 1.5rem;\n$body-font-family: \"Avenir\";\n$body-text-color: var(--color-text-1);\n$body-selection-bg-color: #0653b6;\n$body-selection-color: white;\n$xs-adjustment: 20%; // 62.5 to match Desktop Size\n$p-mb: var(--margin3);\n$p-capitular-size: 6rem;\n$lead-font-size: 2.2rem;\n$small-font-size: 1.2rem;\n\n// --------------------------------------------------\n// Custom Fonts in html-start.html !\n//\n// https://github.com/matthewgonzalez/fontplop/releases\n// https://google-webfonts-helper.herokuapp.com/fonts/\n//\n// --------------------------------------------------\n\n// --------------------------------------------------\n// Titulares\n// --------------------------------------------------\n\n// @mixin generate_titles($title-name, $font-size, $line-height, $letter-spacing, $font-family, $font-weight, $color, $mb, $bg:none, $pb:0, $border:0)\n\n@include generate_titles(\"h1\", 9.4rem, 9.4rem, -0.05rem, \"Avenir\", 700, var(--color-text-2), 6rem);\n@include generate_titles(\"h2\", 9.4rem, 9.4rem, -0.05rem, \"Avenir\", 100, var(--color-text-2), 4.4rem);\n@include generate_titles(\"h3\", 6rem, 6rem, -0.05rem, \"Avenir\", 700, var(--color-text-2), 3.5rem);\n@include generate_titles(\"h4\", 2.5rem, 2.5rem, -0.05rem, \"Avenir\", 300, var(--color-highlight), 1rem);\n@include generate_titles(\"h5\", 2rem, 2.7rem, -0.05rem, \"Avenir\", 300, var(--color-text-2), 2rem);\n@include generate_titles(\"h6\", 1.5rem, 1.5rem, -0.05rem, \"Avenir\", 300, var(--color-text-2), 1.5rem);\n\nhgroup {\n margin-bottom: 100px;\n .h1,\n .h2 {\n margin-bottom: 0;\n }\n}\n\n// * + {\n// .h1,\n// .h2,\n// .h3,\n// .h4,\n// .h5,\n// .h6 {\n// margin-top: var(--margin2);\n// }\n// }\n//\n// .h--border {\n// border-bottom: 1px solid currentcolor;\n// }\n//\n// .h--highlight {\n// &:before {\n// content: \"\";\n// display: block;\n// height: 8px;\n// width: 40px;\n// background: #000;\n// margin-bottom: 20px;\n// }\n// }\n//\n// // --------------------------------------------------\n// // Ajuste de fuentes en responsive\n// // --------------------------------------------------\n// html {\n// @media (max-width: var(--screen-xs-max)) {\n// font-size: $xs-adjustment !important;\n// }\n// @media (max-width: var(--screen-sm-max)) {\n// font-size: 52% !important;\n// }\n// }\n//\n// // --------------------------------------------------\n// // Global font attributes\n// // --------------------------------------------------\n//\nhtml > body {\n margin: 0;\n font-size: $body-font-size;\n font-family: $body-font-family;\n font-weight: 400;\n color: $body-text-color;\n letter-spacing: -0.2px;\n line-height: 140%;\n}\n\n.h1,\n.h2,\n.h3 {\n @media (max-width: $screen-xs-max) {\n font-size: 6rem;\n line-height: 6rem;\n -webkit-text-stroke-width: none;\n -webkit-text-stroke-color: transparent;\n //color: #fff\n }\n}\n\n.h3 {\n @media (max-width: $screen-xs-max) {\n font-size: 4rem;\n line-height: 4rem;\n }\n}\n\n//\n// // --------------------------------------------------\n// // Text selection\n// // --------------------------------------------------\n// ::selection {\n// color: $body-selection-color;\n// background: $body-selection-bg-color;\n// }\n//\n// // --------------------------------------------------\n// // Text Tags\n// // --------------------------------------------------\n//\n// hr {\n// margin: var(--margin3) 0;\n// }\n//\n// p {\n// margin-bottom: $p-mb;\n// line-height: 140%;\n// color: $body-text-color;\n// &.capitular {\n// &::first-letter {\n// float: left;\n// font-size: $p-capitular-size;\n// margin: 0 $body-font-size 1rem 0;\n// vertical-align: bottom;\n// margin-top: 10px;\n// }\n// }\n// }\n//\n.lead {\n font-family: \"Avenir\";\n font-size: $lead-font-size;\n letter-spacing: 0;\n margin-bottom: var(--margin5);\n font-weight: 100;\n}\n//\n// small {\n// font-size: $small-font-size;\n// display: inline-block;\n// margin-bottom: var(--margin3);\n// line-height: $small-font-size * 1.5;\n// color: var(--grey2);\n// }\n//\n// strong,\n// b {\n// font-weight: bold;\n// }\n//\n// abbr {\n// border-bottom: 1px dotted;\n// }\n//\n// em,\n// i {\n// font-style: italic;\n// }\n//\n// sub,\n// sup {\n// font-size: 75%;\n// line-height: 0;\n// position: relative;\n// top: -0.5em;\n// }\n//\n// sub {\n// top: auto;\n// bottom: -0.5em;\n// }\n//\n// cite {\n// font-style: italic;\n// &:after,\n// &:before {\n// content: '\"';\n// }\n// }\n//\n// code {\n// background: #000;\n// color: white;\n// padding: 10px;\n// font-family: \"Monaco\";\n// display: block;\n// margin-bottom: var(--margin1);\n// }\n//\n// mark {\n// }\n//\n// del {\n// }\n//\n// ins {\n// }\n//\n// blockquote {\n// }\n//\n// address {\n// }\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/main.5492fa2e.js.map b/static/js/main.5492fa2e.js.map deleted file mode 100644 index 2a4e3ef..0000000 --- a/static/js/main.5492fa2e.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/main.5492fa2e.js","mappings":"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","sources":["../node_modules/getbasecore/dist/components/atoms/BtnSimple/BtnGroup.js","../node_modules/getbasecore/dist/components/atoms/BtnSimple/BtnSimple.js","../node_modules/getbasecore/dist/components/atoms/BtnSwitch/BtnSwitch.js","../node_modules/getbasecore/dist/components/atoms/FormCheckboxSimple/FormCheckboxSimple.js","../node_modules/getbasecore/dist/components/atoms/FormInputRangeSimple/FormInputRangeSimple.js","../node_modules/getbasecore/dist/components/atoms/FormInputSimple/FormInputSimple.js","../node_modules/getbasecore/dist/components/atoms/FormInputSimple/FormSelectSimple.js","../node_modules/getbasecore/dist/components/atoms/FormRadioSimple/FormRadioSimple.js","../node_modules/getbasecore/dist/components/atoms/Icon/Icon.js","../node_modules/getbasecore/dist/components/atoms/Iframe/Iframe.js","../node_modules/getbasecore/dist/components/atoms/Img/Img.js","../node_modules/getbasecore/dist/components/atoms/LinkSimple/LinkSimple.js","../node_modules/getbasecore/dist/components/atoms/List/List.js","../node_modules/getbasecore/dist/components/atoms/List/ListItem.js","../node_modules/getbasecore/dist/components/atoms/List/ListItemIcon.js","../node_modules/getbasecore/dist/components/atoms/LoaderCircle/LoaderCircle.js","../node_modules/getbasecore/dist/components/atoms/ProgressBar/ProgressBar.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-fast-marquee/src/components/Marquee.tsx","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","webpack://emudeck-web-react/./node_modules/getbasecore/dist/components/atoms/BtnSimple/core_btn-simple.scss?8ca1","webpack://emudeck-web-react/./node_modules/getbasecore/dist/components/atoms/BtnSwitch/core_btn-switch.scss?9c72","webpack://emudeck-web-react/./node_modules/getbasecore/dist/components/atoms/FormCheckboxSimple/core_form-checkbox-simple.scss?a23c","webpack://emudeck-web-react/./node_modules/getbasecore/dist/components/atoms/FormInputRangeSimple/core_form-input-range-simple.scss?38a7","webpack://emudeck-web-react/./node_modules/getbasecore/dist/components/atoms/FormInputSimple/core_form-input-simple.scss?71fd","webpack://emudeck-web-react/./node_modules/getbasecore/dist/components/atoms/FormRadioSimple/core_form-radio-simple.scss?f3be","webpack://emudeck-web-react/./node_modules/getbasecore/dist/components/atoms/Icon/core_icon.scss?fc51","../node_modules/getbasecore/dist/components/atoms/Iframe/iframe.scss","../node_modules/getbasecore/dist/components/atoms/Img/img.scss","webpack://emudeck-web-react/./node_modules/getbasecore/dist/components/atoms/LinkSimple/link-simple.scss?df24","webpack://emudeck-web-react/./node_modules/getbasecore/dist/components/atoms/List/core_list.scss?e908","webpack://emudeck-web-react/./node_modules/getbasecore/dist/components/atoms/LoaderCircle/core_loader-circle.scss?13b9","webpack://emudeck-web-react/./node_modules/getbasecore/dist/components/atoms/ProgressBar/core_progress-bar.scss?9696","../node_modules/core-js/internals/a-callable.js","../node_modules/core-js/internals/a-possible-prototype.js","../node_modules/core-js/internals/add-to-unscopables.js","../node_modules/core-js/internals/an-object.js","../node_modules/core-js/internals/array-includes.js","../node_modules/core-js/internals/classof-raw.js","../node_modules/core-js/internals/copy-constructor-properties.js","../node_modules/core-js/internals/correct-prototype-getter.js","../node_modules/core-js/internals/create-iter-result-object.js","../node_modules/core-js/internals/create-non-enumerable-property.js","../node_modules/core-js/internals/create-property-descriptor.js","../node_modules/core-js/internals/define-built-in.js","../node_modules/core-js/internals/define-global-property.js","../node_modules/core-js/internals/descriptors.js","../node_modules/core-js/internals/document-create-element.js","../node_modules/core-js/internals/dom-iterables.js","../node_modules/core-js/internals/dom-token-list-prototype.js","../node_modules/core-js/internals/engine-user-agent.js","../node_modules/core-js/internals/engine-v8-version.js","../node_modules/core-js/internals/enum-bug-keys.js","../node_modules/core-js/internals/export.js","../node_modules/core-js/internals/fails.js","../node_modules/core-js/internals/function-bind-native.js","../node_modules/core-js/internals/function-call.js","../node_modules/core-js/internals/function-name.js","../node_modules/core-js/internals/function-uncurry-this-accessor.js","../node_modules/core-js/internals/function-uncurry-this.js","../node_modules/core-js/internals/get-built-in.js","../node_modules/core-js/internals/get-method.js","../node_modules/core-js/internals/global.js","../node_modules/core-js/internals/has-own-property.js","../node_modules/core-js/internals/hidden-keys.js","../node_modules/core-js/internals/html.js","../node_modules/core-js/internals/ie8-dom-define.js","../node_modules/core-js/internals/indexed-object.js","../node_modules/core-js/internals/inspect-source.js","../node_modules/core-js/internals/internal-state.js","../node_modules/core-js/internals/is-callable.js","../node_modules/core-js/internals/is-forced.js","../node_modules/core-js/internals/is-null-or-undefined.js","../node_modules/core-js/internals/is-object.js","../node_modules/core-js/internals/is-possible-prototype.js","../node_modules/core-js/internals/is-pure.js","../node_modules/core-js/internals/is-symbol.js","../node_modules/core-js/internals/iterator-create-constructor.js","../node_modules/core-js/internals/iterator-define.js","../node_modules/core-js/internals/iterators-core.js","../node_modules/core-js/internals/iterators.js","../node_modules/core-js/internals/length-of-array-like.js","../node_modules/core-js/internals/make-built-in.js","../node_modules/core-js/internals/math-trunc.js","../node_modules/core-js/internals/object-create.js","../node_modules/core-js/internals/object-define-properties.js","../node_modules/core-js/internals/object-define-property.js","../node_modules/core-js/internals/object-get-own-property-descriptor.js","../node_modules/core-js/internals/object-get-own-property-names.js","../node_modules/core-js/internals/object-get-own-property-symbols.js","../node_modules/core-js/internals/object-get-prototype-of.js","../node_modules/core-js/internals/object-is-prototype-of.js","../node_modules/core-js/internals/object-keys-internal.js","../node_modules/core-js/internals/object-keys.js","../node_modules/core-js/internals/object-property-is-enumerable.js","../node_modules/core-js/internals/object-set-prototype-of.js","../node_modules/core-js/internals/ordinary-to-primitive.js","../node_modules/core-js/internals/own-keys.js","../node_modules/core-js/internals/require-object-coercible.js","../node_modules/core-js/internals/set-to-string-tag.js","../node_modules/core-js/internals/shared-key.js","../node_modules/core-js/internals/shared-store.js","../node_modules/core-js/internals/shared.js","../node_modules/core-js/internals/symbol-constructor-detection.js","../node_modules/core-js/internals/to-absolute-index.js","../node_modules/core-js/internals/to-indexed-object.js","../node_modules/core-js/internals/to-integer-or-infinity.js","../node_modules/core-js/internals/to-length.js","../node_modules/core-js/internals/to-object.js","../node_modules/core-js/internals/to-primitive.js","../node_modules/core-js/internals/to-property-key.js","../node_modules/core-js/internals/try-to-string.js","../node_modules/core-js/internals/uid.js","../node_modules/core-js/internals/use-symbol-as-uid.js","../node_modules/core-js/internals/v8-prototype-define-bug.js","../node_modules/core-js/internals/weak-map-basic-detection.js","../node_modules/core-js/internals/well-known-symbol.js","../node_modules/core-js/modules/es.array.iterator.js","../node_modules/core-js/modules/web.dom-collections.iterator.js","../webpack/bootstrap","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","assets/logo.svg","assets/logo-xs.svg","assets/chevron.svg","assets/ChimeraOSlogo.svg","components/molecules/Section/Section.jsx","components/molecules/Modal/Modal.js","pages/Home.js","pages/Error.js","routers/AppRouter.js","reportWebVitals.js","index.js"],"sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BtnGroup = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nconst BtnGroup = _ref => {\n let {\n children\n } = _ref;\n return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"btn-group\",\n role: \"group\"\n }, children));\n};\nexports.BtnGroup = BtnGroup;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BtnSimple = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = require(\"prop-types\");\nrequire(\"./core_btn-simple.scss\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nconst BtnSimple = _ref => {\n let {\n onClick,\n onChange,\n aria,\n type,\n css,\n children,\n href,\n disabled,\n name,\n id,\n target\n } = _ref;\n return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, type === \"button\" && /*#__PURE__*/_react.default.createElement(\"button\", {\n type: type,\n \"aria-label\": aria,\n onClick: onClick,\n className: \"btn-simple \".concat(css),\n disabled: disabled ? \"disabled\" : \"\"\n }, children), type === \"link\" && /*#__PURE__*/_react.default.createElement(\"a\", {\n href: href,\n \"aria-label\": aria,\n onClick: onClick,\n className: \"btn-simple \".concat(css),\n target: !!target ? target : \"_parent\"\n }, children), type === \"toggle\" && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(\"input\", {\n id: id,\n name: name,\n type: \"radio\",\n \"aria-label\": aria,\n autoComplete: \"off\",\n onChange: onChange\n }), /*#__PURE__*/_react.default.createElement(\"label\", {\n tabIndex: \"0\",\n htmlFor: id,\n className: \"btn-simple \".concat(css)\n }, children)), type === \"multiple\" && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(\"input\", {\n id: id,\n name: name,\n type: \"checkbox\",\n \"aria-label\": aria,\n autoComplete: \"off\"\n }), /*#__PURE__*/_react.default.createElement(\"label\", {\n tabIndex: \"0\",\n htmlFor: id,\n className: \"btn-simple \".concat(css)\n }, children)));\n};\nexports.BtnSimple = BtnSimple;\nBtnSimple.propTypes = {\n onClick: _propTypes.PropTypes.func,\n aria: _propTypes.PropTypes.string.isRequired,\n type: _propTypes.PropTypes.string.isRequired,\n css: _propTypes.PropTypes.string,\n href: _propTypes.PropTypes.string,\n disabled: _propTypes.PropTypes.bool,\n name: _propTypes.PropTypes.string,\n id: _propTypes.PropTypes.string,\n children: _propTypes.PropTypes.oneOfType([_propTypes.PropTypes.object, _propTypes.PropTypes.array, _propTypes.PropTypes.element, _propTypes.PropTypes.string])\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BtnSwitch = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = require(\"prop-types\");\nrequire(\"./core_btn-switch.scss\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nconst BtnSwitch = _ref => {\n let {\n name,\n onChange,\n value,\n checked\n } = _ref;\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"btn-switch\"\n }, /*#__PURE__*/_react.default.createElement(\"input\", {\n type: \"checkbox\",\n name: name,\n defaultChecked: checked,\n className: \"btn-switch__checkbox\",\n id: name,\n onChange: onChange,\n value: value\n }), /*#__PURE__*/_react.default.createElement(\"label\", {\n className: \"btn-switch__label\",\n htmlFor: name\n }));\n};\nexports.BtnSwitch = BtnSwitch;\nBtnSwitch.propTypes = {\n name: _propTypes.PropTypes.string.isRequired,\n onChange: _propTypes.PropTypes.func,\n value: _propTypes.PropTypes.oneOfType([_propTypes.PropTypes.string, _propTypes.PropTypes.number])\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FormCheckboxSimple = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = require(\"prop-types\");\nrequire(\"./core_form-checkbox-simple.scss\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nconst FormCheckboxSimple = _ref => {\n let {\n name,\n id,\n value,\n label,\n checked,\n validation\n } = _ref;\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"form__group \".concat(validation)\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"checkbox-simple\"\n }, /*#__PURE__*/_react.default.createElement(\"input\", {\n id: id,\n name: name,\n type: \"checkbox\",\n value: value,\n defaultChecked: checked\n }), /*#__PURE__*/_react.default.createElement(\"label\", {\n htmlFor: id\n }, label)));\n};\nexports.FormCheckboxSimple = FormCheckboxSimple;\nFormCheckboxSimple.propTypes = {\n name: _propTypes.PropTypes.string.isRequired,\n id: _propTypes.PropTypes.string.isRequired,\n value: _propTypes.PropTypes.oneOfType([_propTypes.PropTypes.string, _propTypes.PropTypes.number]),\n label: _propTypes.PropTypes.string.isRequired,\n checked: _propTypes.PropTypes.string,\n validation: _propTypes.PropTypes.string\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FormInputRangeSimple = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = require(\"prop-types\");\nrequire(\"./core_form-input-range-simple.scss\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nconst FormInputRangeSimple = _ref => {\n let {\n label,\n id,\n name,\n disabled,\n onChange,\n value,\n max,\n min,\n step,\n validation\n } = _ref;\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"form__group \".concat(validation)\n }, /*#__PURE__*/_react.default.createElement(\"label\", {\n htmlFor: name,\n className: \"label-range\"\n }, label), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"input-range-metadata\"\n }, /*#__PURE__*/_react.default.createElement(\"input\", {\n className: \"form__control\",\n type: \"range\",\n min: min,\n max: max,\n value: value,\n step: value,\n name: name,\n id: name,\n onChange: onChange\n })));\n};\nexports.FormInputRangeSimple = FormInputRangeSimple;\nFormInputRangeSimple.propTypes = {\n label: _propTypes.PropTypes.string.isRequired,\n id: _propTypes.PropTypes.string.isRequired,\n name: _propTypes.PropTypes.string.isRequired,\n disabled: _propTypes.PropTypes.string,\n onChange: _propTypes.PropTypes.func,\n value: _propTypes.PropTypes.oneOfType([_propTypes.PropTypes.string, _propTypes.PropTypes.number]),\n max: _propTypes.PropTypes.number.isRequired,\n min: _propTypes.PropTypes.number.isRequired,\n step: _propTypes.PropTypes.number.isRequired,\n validation: _propTypes.PropTypes.string\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FormInputSimple = void 0;\nrequire(\"core-js/modules/es.array.includes.js\");\nrequire(\"core-js/modules/es.string.includes.js\");\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = require(\"prop-types\");\nrequire(\"./core_form-input-simple.scss\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nconst FormInputSimple = _ref => {\n let {\n label,\n labelButton,\n placeholder,\n type,\n name,\n addon,\n addonText,\n disabled,\n disabledAddon,\n onClick,\n onChange,\n focus,\n value,\n max,\n min,\n maxLength,\n minLength,\n validation,\n error\n } = _ref;\n var addOnCss = addon === \"left\" ? \"form__group--addon--left\" : \"\";\n addOnCss = addon === \"right\" ? \"form__group--addon--right\" : \"\";\n let errorArray;\n if (error) {\n errorArray = Object.values(error);\n } else {\n errorArray = [];\n }\n return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"form__group \".concat(addOnCss, \" \").concat(validation)\n }, /*#__PURE__*/_react.default.createElement(\"label\", {\n htmlFor: name\n }, label), /*#__PURE__*/_react.default.createElement(\"input\", {\n id: name,\n className: \"form__control\",\n placeholder: placeholder,\n type: type,\n name: name,\n disabled: disabled ? \"disabled\" : \"\",\n autoFocus: focus ? \"autofocus\" : \"\",\n onChange: onChange,\n defaultValue: value,\n maxLength: maxLength,\n minLength: minLength,\n max: max,\n min: min\n }), addon && /*#__PURE__*/_react.default.createElement(\"button\", {\n className: \"form__addon btn-simple--1\",\n type: \"submit\",\n \"aria-label\": labelButton,\n disabled: disabledAddon ? \"disabled\" : \"\",\n onClick: onClick\n }, addonText.includes(\"#\") ? /*#__PURE__*/_react.default.createElement(\"svg\", {\n className: \"icon icon--xs\"\n }, /*#__PURE__*/_react.default.createElement(\"use\", {\n xlinkHref: \"./svg/sprite.svg\".concat(addonText)\n })) : addonText), /*#__PURE__*/_react.default.createElement(\"ul\", {\n className: \"form__error\"\n }, errorArray.map((item, i) => {\n return /*#__PURE__*/_react.default.createElement(\"li\", {\n key: i\n }, item);\n }))));\n};\nexports.FormInputSimple = FormInputSimple;\nFormInputSimple.propTypes = {\n label: _propTypes.PropTypes.string.isRequired,\n placeholder: _propTypes.PropTypes.string,\n type: _propTypes.PropTypes.string.isRequired,\n name: _propTypes.PropTypes.string.isRequired,\n addon: _propTypes.PropTypes.string,\n addonText: _propTypes.PropTypes.string,\n disabled: _propTypes.PropTypes.string,\n disabledAddon: _propTypes.PropTypes.string,\n onClick: _propTypes.PropTypes.func,\n onChange: _propTypes.PropTypes.func,\n focus: _propTypes.PropTypes.bool,\n value: _propTypes.PropTypes.oneOfType([_propTypes.PropTypes.string, _propTypes.PropTypes.number]),\n max: _propTypes.PropTypes.number,\n min: _propTypes.PropTypes.number,\n maxLength: _propTypes.PropTypes.number,\n minLength: _propTypes.PropTypes.number,\n validation: _propTypes.PropTypes.string,\n error: _propTypes.PropTypes.string\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FormSelectSimple = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = require(\"prop-types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nconst FormSelectSimple = _ref => {\n let {\n label,\n name,\n children,\n onChange,\n hideDefault,\n validation\n } = _ref;\n return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"form__group \".concat(validation)\n }, /*#__PURE__*/_react.default.createElement(\"label\", {\n htmlFor: name,\n className: \"show-sr\"\n }, label), /*#__PURE__*/_react.default.createElement(\"select\", {\n className: \"form__select\",\n name: name,\n id: name,\n onChange: onChange\n }, !hideDefault && /*#__PURE__*/_react.default.createElement(\"option\", {\n value: \"-1\"\n }, label), children)));\n};\nexports.FormSelectSimple = FormSelectSimple;\nFormSelectSimple.propTypes = {\n label: _propTypes.PropTypes.string.isRequired,\n name: _propTypes.PropTypes.string.isRequired,\n onChange: _propTypes.PropTypes.func,\n hideDefault: _propTypes.PropTypes.bool,\n validation: _propTypes.PropTypes.string,\n children: _propTypes.PropTypes.oneOfType([_propTypes.PropTypes.object, _propTypes.PropTypes.array, _propTypes.PropTypes.element])\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FormRadioSimple = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = require(\"prop-types\");\nrequire(\"./core_form-radio-simple.scss\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nconst FormRadioSimple = _ref => {\n let {\n name,\n id,\n value,\n label,\n checked,\n validation\n } = _ref;\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"form__group \".concat(validation)\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"radio-simple\"\n }, /*#__PURE__*/_react.default.createElement(\"input\", {\n id: id,\n name: name,\n type: \"radio\",\n value: value,\n defaultChecked: checked\n }), /*#__PURE__*/_react.default.createElement(\"label\", {\n htmlFor: id\n }, label)));\n};\nexports.FormRadioSimple = FormRadioSimple;\nFormRadioSimple.propTypes = {\n name: _propTypes.PropTypes.string.isRequired,\n id: _propTypes.PropTypes.string.isRequired,\n value: _propTypes.PropTypes.oneOfType([_propTypes.PropTypes.string, _propTypes.PropTypes.number]),\n label: _propTypes.PropTypes.string.isRequired,\n checked: _propTypes.PropTypes.string,\n validation: _propTypes.PropTypes.string\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Icon = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = require(\"prop-types\");\nrequire(\"./core_icon.scss\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nconst Icon = _ref => {\n let {\n icon,\n css\n } = _ref;\n return /*#__PURE__*/_react.default.createElement(\"svg\", {\n className: \"icon \".concat(css),\n role: \"presentation\"\n }, /*#__PURE__*/_react.default.createElement(\"use\", {\n xlinkHref: \"\".concat(process.env.PUBLIC_URL, \"/svg/sprite.svg#\").concat(icon)\n }));\n};\nexports.Icon = Icon;\nIcon.propTypes = {\n icon: _propTypes.PropTypes.string.isRequired,\n css: _propTypes.PropTypes.string\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Iframe = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = require(\"prop-types\");\nrequire(\"./iframe.scss\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nconst Iframe = _ref => {\n let {\n src,\n css,\n title\n } = _ref;\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"embed-responsive embed-responsive--16-9\"\n }, /*#__PURE__*/_react.default.createElement(\"iframe\", {\n title: title,\n className: \"embed-responsive__item\",\n width: \"1280\",\n height: \"720\",\n src: src,\n frameBorder: \"0\",\n allowFullScreen: true,\n allow: \"autoplay; fullscreen; picture-in-picture\"\n }));\n};\nexports.Iframe = Iframe;\nIframe.propTypes = {\n title: _propTypes.PropTypes.string.isRequired,\n src: _propTypes.PropTypes.string.isRequired,\n css: _propTypes.PropTypes.string\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Img = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = require(\"prop-types\");\nrequire(\"./img.scss\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nconst Img = _ref => {\n let {\n src,\n srcXS,\n srcSM,\n srcMD,\n srcLG,\n srcXL,\n alt,\n css\n } = _ref;\n return /*#__PURE__*/_react.default.createElement(\"picture\", {\n className: css\n }, /*#__PURE__*/_react.default.createElement(\"source\", {\n media: \"(max-width: 460px)\",\n srcSet: srcXS\n }), /*#__PURE__*/_react.default.createElement(\"source\", {\n media: \"(max-width: 768px)\",\n srcSet: srcSM\n }), /*#__PURE__*/_react.default.createElement(\"source\", {\n media: \"(max-width: 992px)\",\n srcSet: srcMD\n }), /*#__PURE__*/_react.default.createElement(\"source\", {\n media: \"(max-width: 1200px)\",\n srcSet: srcLG\n }), /*#__PURE__*/_react.default.createElement(\"source\", {\n media: \"(max-width: 1440px)\",\n srcSet: srcXL\n }), /*#__PURE__*/_react.default.createElement(\"img\", {\n className: css,\n src: src,\n alt: alt\n }));\n};\nexports.Img = Img;\nImg.propTypes = {\n src: _propTypes.PropTypes.string.isRequired,\n srcXS: _propTypes.PropTypes.string,\n srcSM: _propTypes.PropTypes.string,\n srcMD: _propTypes.PropTypes.string,\n srcLG: _propTypes.PropTypes.string,\n srcXL: _propTypes.PropTypes.string,\n alt: _propTypes.PropTypes.string.isRequired,\n css: _propTypes.PropTypes.string\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LinkSimple = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = require(\"prop-types\");\nrequire(\"./link-simple.scss\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nconst LinkSimple = _ref => {\n let {\n onClick,\n css,\n children,\n href,\n target,\n role\n } = _ref;\n return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, href && /*#__PURE__*/_react.default.createElement(\"a\", {\n href: href,\n onClick: onClick,\n className: \"link-simple \".concat(css),\n target: target,\n role: role\n }, children), !href && /*#__PURE__*/_react.default.createElement(\"button\", {\n type: \"button\",\n onClick: onClick,\n className: \"link-simple \".concat(css)\n }, children));\n};\nexports.LinkSimple = LinkSimple;\nLinkSimple.propTypes = {\n onClick: _propTypes.PropTypes.func,\n css: _propTypes.PropTypes.string,\n href: _propTypes.PropTypes.string.isRequired,\n target: _propTypes.PropTypes.string,\n children: _propTypes.PropTypes.oneOfType([_propTypes.PropTypes.object, _propTypes.PropTypes.array, _propTypes.PropTypes.element, _propTypes.PropTypes.string])\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.List = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = require(\"prop-types\");\nvar _ListItem = require(\"./ListItem\");\nvar _ListItemIcon = require(\"./ListItemIcon\");\nrequire(\"./core_list.scss\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nconst List = _ref => {\n let {\n children,\n css\n } = _ref;\n return /*#__PURE__*/_react.default.createElement(\"ul\", {\n className: \"list \".concat(css)\n }, children.map((item, i) => {\n if (item.length >= 2) {\n return /*#__PURE__*/_react.default.createElement(_ListItemIcon.ListItemIcon, {\n key: i,\n icon: item[0],\n text: item[1]\n });\n } else {\n return /*#__PURE__*/_react.default.createElement(_ListItem.ListItem, {\n key: i\n }, item);\n }\n }));\n};\nexports.List = List;\nList.propTypes = {\n css: _propTypes.PropTypes.string,\n children: _propTypes.PropTypes.oneOfType([_propTypes.PropTypes.object, _propTypes.PropTypes.array, _propTypes.PropTypes.element])\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ListItem = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nconst ListItem = _ref => {\n let {\n children\n } = _ref;\n return /*#__PURE__*/_react.default.createElement(\"li\", null, children);\n};\nexports.ListItem = ListItem;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ListItemIcon = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _Atoms = require(\"getbasecore/Atoms\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nconst ListItemIcon = _ref => {\n let {\n text,\n icon\n } = _ref;\n return /*#__PURE__*/_react.default.createElement(\"li\", null, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"text\"\n }, /*#__PURE__*/_react.default.createElement(_Atoms.Icon, {\n icon: icon\n }), text));\n};\nexports.ListItemIcon = ListItemIcon;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LoaderCircle = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = require(\"prop-types\");\nrequire(\"./core_loader-circle.scss\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nconst LoaderCircle = _ref => {\n let {\n aria\n } = _ref;\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"loader-circle\",\n \"aria-label\": aria\n });\n};\nexports.LoaderCircle = LoaderCircle;\nLoaderCircle.propTypes = {\n aria: _propTypes.PropTypes.string.isRequired\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ProgressBar = void 0;\nrequire(\"core-js/modules/web.dom-collections.iterator.js\");\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = require(\"prop-types\");\nrequire(\"./core_progress-bar.scss\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nconst ProgressBar = _ref => {\n let {\n css,\n value,\n max,\n infinite\n } = _ref;\n let valueFinal;\n if (infinite) {\n const [counter, setCounter] = useState(0);\n useEffect(() => {\n const interval = setInterval(() => {\n setCounter(prevCounter => {\n if (prevCounter === 110) {\n prevCounter = -10;\n }\n return prevCounter + 1;\n });\n }, 100);\n return () => clearInterval(interval);\n }, []);\n valueFinal = counter;\n } else {\n valueFinal = value;\n }\n const percentage = value * 100 / max;\n return /*#__PURE__*/_react.default.createElement(\"progress\", {\n className: \"progress \".concat(css),\n value: valueFinal,\n max: max\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"progress\"\n }, /*#__PURE__*/_react.default.createElement(\"span\", {\n style: {\n width: percentage + \"%\"\n }\n }, value, \"%\")));\n};\nexports.ProgressBar = ProgressBar;\nProgressBar.propTypes = {\n css: _propTypes.PropTypes.string,\n value: _propTypes.PropTypes.oneOfType([_propTypes.PropTypes.string, _propTypes.PropTypes.number]),\n max: _propTypes.PropTypes.string.isRequired\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\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\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\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.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/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3 void}\n * @default null\n */\n onFinish?: () => void;\n /**\n * @description A callback for when the marquee finishes a loop. Does not call if maximum loops are reached (use onFinish instead).\n * @type {() => void}\n * @default null\n */\n onCycleComplete?: () => void;\n /**\n * @description: A callback function that is invoked once the marquee has finished mounting. It can be utilized to recalculate the page size, if necessary.\n * @type {() => void}\n * @default null\n */\n onMount?: () => void;\n /**\n * @description The children rendered inside the marquee\n * @type {ReactNode}\n * @default null\n */\n children?: ReactNode;\n} & RefAttributes;\n\nconst Marquee: FC = forwardRef(function Marquee(\n {\n style = {},\n className = \"\",\n autoFill = false,\n play = true,\n pauseOnHover = false,\n pauseOnClick = false,\n direction = \"left\",\n speed = 50,\n delay = 0,\n loop = 0,\n gradient = false,\n gradientColor = \"white\",\n gradientWidth = 200,\n onFinish,\n onCycleComplete,\n onMount,\n children,\n },\n ref\n) {\n // React Hooks\n const [containerWidth, setContainerWidth] = useState(0);\n const [marqueeWidth, setMarqueeWidth] = useState(0);\n const [multiplier, setMultiplier] = useState(1);\n const [isMounted, setIsMounted] = useState(false);\n const rootRef = useRef(null);\n const containerRef = (ref as MutableRefObject) || rootRef;\n const marqueeRef = useRef(null);\n\n // Calculate width of container and marquee and set multiplier\n const calculateWidth = useCallback(() => {\n if (marqueeRef.current && containerRef.current) {\n const containerRect = containerRef.current.getBoundingClientRect();\n const marqueeRect = marqueeRef.current.getBoundingClientRect();\n let containerWidth = containerRect.width;\n let marqueeWidth = marqueeRect.width;\n\n // Swap width and height if direction is up or down\n if (direction === \"up\" || direction === \"down\") {\n containerWidth = containerRect.height;\n marqueeWidth = marqueeRect.height;\n }\n\n if (autoFill && containerWidth && marqueeWidth) {\n setMultiplier(\n marqueeWidth < containerWidth\n ? Math.ceil(containerWidth / marqueeWidth)\n : 1\n );\n } else {\n setMultiplier(1);\n }\n\n setContainerWidth(containerWidth);\n setMarqueeWidth(marqueeWidth);\n }\n }, [autoFill, containerRef, direction]);\n\n // Calculate width and multiplier on mount and on window resize\n useEffect(() => {\n if (!isMounted) return;\n\n calculateWidth();\n if (marqueeRef.current && containerRef.current) {\n const resizeObserver = new ResizeObserver(() => calculateWidth());\n resizeObserver.observe(containerRef.current);\n resizeObserver.observe(marqueeRef.current);\n return () => {\n if (!resizeObserver) return;\n resizeObserver.disconnect();\n };\n }\n }, [calculateWidth, containerRef, isMounted]);\n\n // Recalculate width when children change\n useEffect(() => {\n calculateWidth();\n }, [calculateWidth, children]);\n\n useEffect(() => {\n setIsMounted(true);\n }, []);\n\n // Runs the onMount callback, if it is a function, when Marquee is mounted.\n useEffect(() => {\n if (typeof onMount === \"function\") {\n onMount();\n }\n }, []);\n\n // Animation duration\n const duration = useMemo(() => {\n if (autoFill) {\n return (marqueeWidth * multiplier) / speed;\n } else {\n return marqueeWidth < containerWidth\n ? containerWidth / speed\n : marqueeWidth / speed;\n }\n }, [autoFill, containerWidth, marqueeWidth, multiplier, speed]);\n\n const containerStyle = useMemo(\n () => ({\n ...style,\n [\"--pause-on-hover\" as string]:\n !play || pauseOnHover ? \"paused\" : \"running\",\n [\"--pause-on-click\" as string]:\n !play || (pauseOnHover && !pauseOnClick) || pauseOnClick\n ? \"paused\"\n : \"running\",\n [\"--width\" as string]:\n direction === \"up\" || direction === \"down\" ? `100vh` : \"100%\",\n [\"--transform\" as string]:\n direction === \"up\"\n ? \"rotate(-90deg)\"\n : direction === \"down\"\n ? \"rotate(90deg)\"\n : \"none\",\n }),\n [style, play, pauseOnHover, pauseOnClick, direction]\n );\n\n const gradientStyle = useMemo(\n () => ({\n [\"--gradient-color\" as string]: gradientColor,\n [\"--gradient-width\" as string]:\n typeof gradientWidth === \"number\"\n ? `${gradientWidth}px`\n : gradientWidth,\n }),\n [gradientColor, gradientWidth]\n );\n\n const marqueeStyle = useMemo(\n () => ({\n [\"--play\" as string]: play ? \"running\" : \"paused\",\n [\"--direction\" as string]: direction === \"left\" ? \"normal\" : \"reverse\",\n [\"--duration\" as string]: `${duration}s`,\n [\"--delay\" as string]: `${delay}s`,\n [\"--iteration-count\" as string]: !!loop ? `${loop}` : \"infinite\",\n [\"--min-width\" as string]: autoFill ? `auto` : \"100%\",\n }),\n [play, direction, duration, delay, loop, autoFill]\n );\n\n const childStyle = useMemo(\n () => ({\n [\"--transform\" as string]:\n direction === \"up\"\n ? \"rotate(90deg)\"\n : direction === \"down\"\n ? \"rotate(-90deg)\"\n : \"none\",\n }),\n [direction]\n );\n\n // Render {multiplier} number of children\n const multiplyChildren = useCallback(\n (multiplier: number) => {\n return [\n ...Array(\n Number.isFinite(multiplier) && multiplier >= 0 ? multiplier : 0\n ),\n ].map((_, i) => (\n \n {Children.map(children, (child) => {\n return (\n
\n {child}\n
\n );\n })}\n
\n ));\n },\n [childStyle, children]\n );\n\n return !isMounted ? null : (\n \n {gradient &&
}\n \n
\n {Children.map(children, (child) => {\n return (\n
\n {child}\n
\n );\n })}\n
\n {multiplyChildren(multiplier - 1)}\n
\n
\n {multiplyChildren(multiplier)}\n
\n \n );\n});\n\nexport default Marquee;\n","/**\n * @license React\n * react-jsx-runtime.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 f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.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 l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","// extracted by mini-css-extract-plugin\nexport default {};","// extracted by mini-css-extract-plugin\nexport default {};","// extracted by mini-css-extract-plugin\nexport default {};","// extracted by mini-css-extract-plugin\nexport default {};","// extracted by mini-css-extract-plugin\nexport default {};","// extracted by mini-css-extract-plugin\nexport default {};","// extracted by mini-css-extract-plugin\nexport default {};","// extracted by mini-css-extract-plugin\nexport default {};","// extracted by mini-css-extract-plugin\nexport default {};","// extracted by mini-css-extract-plugin\nexport default {};","// extracted by mini-css-extract-plugin\nexport default {};","// extracted by mini-css-extract-plugin\nexport default {};","// extracted by mini-css-extract-plugin\nexport default {};","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (isPossiblePrototype(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] === undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n if (length === 0) return !IS_INCLUDES && -1;\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\n// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","'use strict';\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","'use strict';\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = global[TARGET] && global[TARGET].prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nmodule.exports = function (argument) {\n return isObject(argument) || argument === null;\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND];\n\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n }\n\n return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n requireObjectCoercible(O);\n aPossiblePrototype(proto);\n if (!isObject(O)) return O;\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.37.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.37.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n switch (state.kind) {\n case 'keys': return createIterResultObject(index, false);\n case 'values': return createIterResultObject(target[index], false);\n } return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n setToStringTag(CollectionPrototype, COLLECTION_NAME, true);\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\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","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (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((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((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 = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"5615ffab\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"emudeck-web-react:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (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 = (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((fn) => (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};","// define __esModule on exports\n__webpack_require__.r = (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\t792: 0\n};\n\n__webpack_require__.f.j = (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(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((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 = (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}\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// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (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((id) => (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\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkemudeck_web_react\"] = self[\"webpackChunkemudeck_web_react\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n reloadDocument?: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (args: LoaderFunctionArgs):\n | Promise\n | DataFunctionValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs):\n | Promise\n | DataFunctionValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(branches[i], decoded);\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nfunction decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === matches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n ActionFunction,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n AgnosticRouteObject,\n DataResult,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n ImmutableRouteKey,\n LoaderFunction,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: { requestContext?: unknown }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized: boolean;\n let hasLazyRoutes = initialMatches.some((m) => m.route.lazy);\n let hasLoaders = initialMatches.some((m) => m.route.loader);\n if (hasLazyRoutes) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!hasLoaders) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) return true;\n // Explicitly opting-in to running on hydration\n if (m.route.loader.hydrate === true) return false;\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace, flushSync }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionData,\n pendingError\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n if (\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration)\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(state, redirect.result, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(state, actionResult, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n { [match.route.id]: actionResult.data },\n undefined // No need to send through errors since we short circuit above\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(state, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(state, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(state.location, redirect.location, {\n _isRedirect: true,\n });\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.reloadDocument) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(redirect.location)) {\n const url = init.history.createURL(redirect.location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(redirect.location);\n } else {\n routerWindow.location.assign(redirect.location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n )\n ),\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n return callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, f.path, f.controller.signal),\n f.match,\n f.matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n } else {\n let error: ErrorResult = {\n type: ResultType.error,\n error: getInternalRouterError(404, { pathname: f.path }),\n };\n return error;\n }\n }),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n match\n );\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath,\n { isStaticRequest: true, isRouteRequest, requestContext }\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath,\n { isStaticRequest: true, isRouteRequest, requestContext }\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError,\n activeDeferreds\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n defaultShouldRevalidate:\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n defaultShouldRevalidate: isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n basename: string,\n v7_relativeSplatPath: boolean,\n opts: {\n isStaticRequest?: boolean;\n isRouteRequest?: boolean;\n requestContext?: unknown;\n } = {}\n): Promise {\n let resultType;\n let result;\n let onReject: (() => void) | undefined;\n\n let runHandler = (handler: ActionFunction | LoaderFunction) => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([\n handler({\n request,\n params: match.params,\n context: opts.requestContext,\n }),\n abortPromise,\n ]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let values = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError) {\n throw handlerError;\n }\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, data: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n location = normalizeTo(\n new URL(request.url),\n matches.slice(0, matches.indexOf(match) + 1),\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n } else if (!opts.isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\")\n ? new URL(currentUrl.protocol + location)\n : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (opts.isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n reloadDocument: result.headers.get(\"X-Remix-Reload-Document\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (opts.isRouteRequest) {\n let queryRouteResponse: QueryRouteResponse = {\n type:\n resultType === ResultType.error ? ResultType.error : ResultType.data,\n response: result,\n };\n throw queryRouteResponse;\n }\n\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponseImpl(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || obj.type === ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

đź’ż Hey developer đź‘‹

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error !== undefined ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null,\n future: RemixRouter[\"future\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id]\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial>;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a