@erhan/utopyatv 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -2
- package/app/assets/index-Bcvgcl1X.js +15 -0
- package/app/assets/worker-Dzho9WYm.js +8 -0
- package/app/index.html +14 -0
- package/package.json +42 -3
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
(function(){var e=document.createElement(`style`);e.textContent=`:root{--bg:#070c18;--bg-top:#0d1830;--surface:#111c33;--surface-variant:#1a2947;--on-bg:#e8edf5;--on-surface-variant:#a3b1c9;--accent:#4fc3f7;--accent-rgb:79, 195, 247;--live:#e53935;--error:#ff6b6b;--glass:rgba(17,28,51,.72)}html{font-size:1.04167vw;font-size:min(1.04167vw,1.85185vh)}html,body{height:100%;color:var(--on-bg);-webkit-font-smoothing:antialiased;background:0 0;margin:0;font-family:SamsungOne,Tizen Sans,Roboto,Helvetica Neue,Arial,sans-serif;overflow:hidden}*{box-sizing:border-box}::-webkit-scrollbar{display:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}[data-focus]:focus{outline:none}h1,h2,p{margin:0}.muted{color:var(--on-surface-variant)}.row{align-items:center;display:flex}.row>*+*{margin-left:1.2rem}.app{z-index:1;flex-direction:column;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}#video{position:absolute;top:0;bottom:0;left:0;right:0}.backdrop{z-index:-1;background:radial-gradient(circle at 10% 0, rgba(var(--accent-rgb), .13), transparent 55vw), radial-gradient(circle at 100% 100%, rgba(124,77,255,.1), transparent 50vw), linear-gradient(var(--bg-top), var(--bg));background-size:100vw 100vh;position:absolute;transform:translateZ(0)}.glass{background:var(--glass);border:.1rem solid rgba(255,255,255,.06);border-radius:2rem}.icon{width:2.2rem;height:2.2rem;display:block}.topbar{flex:none;align-items:center;margin:1.8rem 4.8rem 0;padding:.8rem 1.6rem;display:flex}.brand{background:linear-gradient(90deg, #fff, var(--accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;flex:1;font-size:2.2rem;font-weight:900}.pills{align-items:center;display:flex}.pill{color:var(--on-surface-variant);white-space:nowrap;border:.1rem solid transparent;border-radius:10rem;margin-left:.2rem;padding:.7rem 1.2rem;font-size:1.6rem;font-weight:500}.pill.icon-only{padding:.6rem 1rem}.pill.selected{background:rgba(var(--accent-rgb), .18);border-color:rgba(var(--accent-rgb), .5);color:var(--accent)}.pill:focus{background:var(--on-bg);color:var(--surface)}.content{flex:1;min-height:0;padding:2.4rem 4.8rem 2.7rem;overflow:auto}.placeholder h1{margin-bottom:1rem;font-size:3.4rem;font-weight:700}.placeholder p{font-size:1.8rem}.scrim{background:rgba(0,0,0,.6);justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.dialog{background:var(--surface);width:48rem;padding:2.8rem 3.2rem}.dialog h2{margin-bottom:1rem;font-size:2.4rem}.dialog p{color:var(--on-surface-variant);margin-bottom:2.4rem;font-size:1.8rem}.btn{background:var(--surface-variant);border-radius:10rem;padding:.9rem 2.2rem;font-size:1.6rem;font-weight:500}.btn:focus{background:var(--on-bg);color:var(--surface)}.btn{align-items:center;display:inline-flex}.btn .icon{width:2rem;height:2rem;margin-right:.8rem}.btn.primary{background:var(--accent);color:#00121c}.btn.outline{background:0 0;border:.1rem solid rgba(255,255,255,.25)}.btn:focus,.btn.primary:focus,.btn.outline:focus{background:var(--on-bg);color:var(--surface);border-color:var(--on-bg)}.chip{border:.1rem solid rgba(255,255,255,.2);border-radius:10rem;padding:.6rem 1.6rem;font-size:1.5rem}.chip.selected{background:rgba(var(--accent-rgb), .18);border-color:var(--accent);color:var(--accent)}.chip:focus{background:var(--on-bg);color:var(--surface)}.field{margin-bottom:1.4rem;display:block}.field-label{color:var(--on-surface-variant);margin-bottom:.6rem;font-size:1.4rem;display:block}.field-box{background:var(--surface-variant);border:.2rem solid transparent;border-radius:1.2rem}.field-box:focus{border-color:var(--accent)}.field-box input:focus{background:rgba(var(--accent-rgb), .12)}.field-box input{width:100%;color:var(--on-bg);font:inherit;background:0 0;border:0;border-radius:1rem;outline:none;padding:1rem 1.4rem;font-size:1.7rem;display:block}.field-box input::-webkit-input-placeholder{color:rgba(163,177,201,.6)}.field-pair{display:flex}.field-pair>.field{flex:1}.field-pair>.field+.field{margin-left:1.6rem}.error-box{background:rgba(255,82,82,.2);border-radius:1.2rem;margin-bottom:1.4rem;padding:1.6rem;font-size:1.7rem}.error-text{color:var(--error);font-size:2.2rem}.onboarding{flex-direction:column;flex:1;min-height:0;padding:2.7rem 4.8rem;display:flex}.center-msg{margin:auto;font-size:2.2rem}.onb-choose{flex:1;align-items:center;display:flex}.onb-brand{flex:.9;margin-right:5.6rem}.brand-mark{background:linear-gradient(135deg, var(--accent), #0288d1);color:#fff;border-radius:1.8rem;justify-content:center;align-items:center;width:7.2rem;height:7.2rem;display:flex}.brand-mark .icon{width:4.3rem;height:4.3rem}.onb-brand h1{margin-top:2.4rem;font-size:4.8rem;font-weight:900}.tagline{margin-top:.8rem;font-size:2.2rem}.features{margin:3.6rem 0 0;padding:0;list-style:none}.features li{align-items:center;margin-bottom:1.6rem;font-size:1.8rem;display:flex}.feature-icon{background:rgba(var(--accent-rgb), .14);width:4rem;height:4rem;color:var(--accent);border-radius:50%;flex:none;justify-content:center;align-items:center;margin-right:1.6rem;display:flex}.note{margin-top:2rem;font-size:1.4rem}.onb-options{flex:1.1;max-height:100%;margin:-1.2rem -1.6rem;padding:1.2rem 1.6rem;overflow:auto}.onb-options h2{margin:0 0 .6rem .4rem;font-size:2.2rem;font-weight:600}.option{text-align:left;background:rgba(17,28,51,.75);border:.2rem solid transparent;border-radius:1.6rem;align-items:center;width:100%;margin-top:.8rem;padding:.9rem 1.8rem;transition:transform .12s ease-out;display:flex}.option:focus{background:var(--surface-variant);border-color:var(--accent);transform:scale(1.03)}.option-icon{border-radius:1.2rem;flex:none;justify-content:center;align-items:center;width:4.4rem;height:4.4rem;display:flex}.option-icon .icon{width:2.6rem;height:2.6rem}.option-text{flex:1;min-width:0;margin-left:1.6rem;font-size:1.4rem}.option-text>span{display:block}.option-title{margin-bottom:.2rem;font-size:1.8rem;font-weight:500}.badge{border-radius:10rem;margin-left:1rem;padding:.2rem 1rem;font-size:1.2rem}.step-header{flex:none;align-items:center;display:flex}.step-header>div{margin-left:2.4rem}.step-header h1{font-size:2.8rem;font-weight:600}.step-header p{font-size:1.6rem}.form-step{flex-direction:column;flex:1;min-height:0;display:flex}.form-row{flex:1;min-height:0;margin-top:2rem;display:flex}.form-panel{flex:1;padding:2.2rem 2.8rem;overflow:auto}.form-panel h3{margin:0 0 1rem;font-size:1.6rem;font-weight:500}.connect{margin:.4rem 0 1.8rem}.file-chosen{margin-bottom:1.4rem;font-size:1.7rem}.form-side{flex:none;width:34rem;margin-left:2.8rem}.usb-list{flex:1;margin-top:2rem;padding:1.6rem 2.2rem;font-size:1.7rem;overflow:auto}.sync-step{text-align:center;margin:auto}.sync-step h1{margin-bottom:2.4rem;font-size:2.8rem;font-weight:600}.sync-step .stage{font-size:2.2rem}.sync-step .row{justify-content:center;margin-top:2.4rem}.sync-step>.btn{margin-top:3.2rem}.indeterminate{background:var(--surface-variant);border-radius:.3rem;width:48rem;height:.6rem;margin:2rem auto 0;overflow:hidden}.indeterminate span{background:var(--accent);width:40%;height:100%;animation:1.2s ease-in-out infinite indeterminate;display:block}@keyframes indeterminate{0%{transform:translate(-100%)}to{transform:translate(250%)}}.focus-row{text-align:left;border:.3rem solid transparent;border-radius:1rem;align-items:center;width:100%;padding:.8rem 1.2rem;transition:transform .1s ease-out;display:flex}.focus-row>*+*{margin-left:1rem}.focus-row.idle{background:rgba(26,41,71,.45)}.focus-row.selected{background:var(--surface-variant)}.focus-row:focus{background:var(--surface-variant);border-color:var(--accent);transform:scale(1.03)}.channel-logo{background:rgba(255,255,255,.13);border-radius:.6rem;flex:none;justify-content:center;align-items:center;padding:.3rem;display:inline-flex;overflow:hidden}.channel-logo img{max-width:100%;max-height:100%}.marquee{white-space:nowrap;text-overflow:ellipsis;min-width:0;display:block;overflow:hidden}.marquee>span.run{animation:linear infinite alternate marquee;display:inline-block}@keyframes marquee{0%,15%{transform:translate(0)}85%,to{transform:translateX(var(--marquee))}}.fav-star{color:#ffb74d;flex:none;width:1.4rem;height:1.4rem;margin-left:.6rem}.fav-star.big{width:2.2rem;height:2.2rem}.content.live-content{padding-top:2.4rem}.live-screen{height:100%;display:flex}.live-screen>*+*{margin-left:1.2rem}.live-cats{flex-direction:column;flex:none;width:19rem;padding:1rem;display:flex}.live-cats.wide{width:27rem}.group-mode{text-align:left;border:.2rem solid transparent;border-radius:1rem;flex:none;justify-content:space-between;align-items:center;margin-bottom:.8rem;padding:.6rem .8rem;display:flex}.group-mode:focus{background:var(--surface-variant);border-color:var(--accent)}.group-mode>span>span{display:block}.gm-title{font-size:1.8rem;font-weight:500}.gm-value{color:var(--accent);white-space:nowrap;font-size:1.4rem}.cat-list{flex:1;min-height:0;margin:-.6rem -1rem;padding:.6rem 1rem;overflow:auto}.cat-row{margin-bottom:.4rem;font-size:1.6rem;font-weight:500}.cat-row.selected .cat-name{color:var(--accent)}.cat-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.cat-icon{flex:none;width:1.6rem;height:1.6rem}.platform-badge{flex:none;align-items:center;width:5.4rem;height:1.8rem;display:inline-flex}.platform-badge img{max-width:100%;max-height:100%}.platform-badge b{white-space:nowrap;font-size:1.2rem}.tint-white{filter:brightness(0)invert()}.live-channels{flex-direction:column;flex:1;min-width:0;padding:1rem;display:flex}.panel-title{padding:.4rem .8rem 1rem}.panel-title h2{font-size:1.8rem;font-weight:500}.panel-title span{font-size:1.4rem}.empty{margin:auto;font-size:1.8rem}.channel-list{flex:1;min-height:0;margin:0 -1.2rem;padding:0 1.2rem;position:relative;overflow:hidden}.channel-list-inner{position:relative}.channel-row{height:6.8rem;position:absolute;left:0;right:0}.channel-row.compact{height:5.6rem}.ch-number{width:4.4rem;color:var(--on-surface-variant);flex:none;font-size:1.6rem;font-weight:500}.channel-row.compact .ch-number{width:4rem}.channel-row.selected .ch-number{color:var(--accent)}.ch-logo-box{background:rgba(255,255,255,.07);border-radius:1rem;flex:none;justify-content:center;align-items:center;width:6.4rem;height:4.8rem;display:flex}.ch-text{flex:1;min-width:0}.ch-name{align-items:center;font-size:1.6rem;font-weight:500;display:flex}.live-preview{background:0 0;flex:none;width:30rem;padding:1.4rem;position:relative;overflow:hidden}.preview-label{color:var(--accent);margin-bottom:1rem;font-size:1.6rem;font-weight:500;display:block}.preview-box{height:15.19rem;box-shadow:0 0 0 100rem var(--glass);background:#000;border-radius:1.2rem;justify-content:center;align-items:center;display:flex}.preview-box.hole{background:0 0}.preview-name{margin-top:1.4rem;margin-bottom:1rem;font-size:2.2rem;font-weight:600}.live-preview p{font-size:1.4rem}.toast{z-index:50;background:rgba(8,11,16,.9);border-radius:2.4rem;padding:1rem 2.2rem;font-size:1.6rem;font-weight:500;position:fixed;top:4rem;left:50%;transform:translate(-50%)}.menu-dialog{background:var(--surface);border-radius:1.6rem;width:52rem;padding:2.4rem}.menu-dialog h2{margin-bottom:1.4rem;font-size:2.4rem;font-weight:600}.menu-list{max-height:48rem;margin:-.4rem -1.2rem;padding:.4rem 1.2rem;overflow:auto}.menu-item{text-align:left;border:.3rem solid transparent;border-radius:1rem;justify-content:space-between;align-items:center;width:100%;margin-bottom:.4rem;padding:1rem 1.2rem;font-size:1.8rem;font-weight:500;transition:transform .1s ease-out;display:flex}.menu-item:focus{background:var(--surface-variant);border-color:var(--accent);transform:scale(1.03)}.menu-item .icon{color:var(--accent)}.number-box{color:var(--accent);z-index:40;background:rgba(0,0,0,.8);border-radius:1.2rem;padding:1.4rem 2.8rem;font-size:3.4rem;font-weight:700;position:fixed;top:4rem;right:4.8rem}.player{position:absolute;top:0;bottom:0;left:0;right:0}.player-center{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.spinner{border:.5rem solid transparent;border-top-color:var(--accent);border-right-color:var(--accent);border-bottom-color:var(--accent);border-radius:50%;width:5.6rem;height:5.6rem;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.retry-label{background:rgba(8,11,16,.9);border-radius:.8rem;margin-top:1.2rem;padding:.4rem 1rem;font-size:1.6rem}.paused-icon{width:7.2rem;height:7.2rem}.error-card{text-align:center;background:rgba(8,11,16,.9);border-radius:1.6rem;width:56rem;padding:2.8rem}.error-card .error-icon{width:4.8rem;height:4.8rem;color:var(--error);margin:0 auto 1.2rem}.error-card p{margin-bottom:2rem;font-size:1.8rem;font-weight:500}.error-card .row{justify-content:center}.info-band{background:linear-gradient(transparent,rgba(5,8,12,.8) 40%,rgba(5,8,12,.95));padding:5.6rem 4.8rem 2.7rem;animation:.2s ease-out band-in;position:absolute;bottom:0;left:0;right:0}@keyframes band-in{0%{opacity:0;transform:translateY(33%)}to{opacity:1;transform:none}}.band-row{align-items:flex-start;display:flex}.band-left{flex-direction:column;flex:none;align-items:flex-start;display:flex}.band-number{color:var(--accent);margin-bottom:.6rem;font-size:3.4rem;font-weight:700}.band-mid{flex:1;min-width:0;margin-left:2.4rem}.band-title{align-items:center;display:flex}.band-title>*+*{margin-left:1rem}.band-name{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:2.8rem;font-weight:600;overflow:hidden}.badge-sm{background:rgba(255,255,255,.2);border-radius:.6rem;flex:none;padding:.2rem .8rem;font-size:1.4rem}.badge-sm.live{background:var(--live)}.band-program{margin-top:.8rem;font-size:1.8rem}.band-hint{color:rgba(255,255,255,.6);margin-top:1rem;font-size:1.2rem}.band-clock{flex:none;margin-left:2.4rem;font-size:2.2rem;font-weight:600}.control-bar{justify-content:center;margin-top:2rem;display:flex}.cb-item{flex-direction:column;align-items:center;width:7.6rem;margin:0 .7rem;display:flex}.cb-btn{background:rgba(255,255,255,.14);border-radius:50%;justify-content:center;align-items:center;width:5.6rem;height:5.6rem;transition:transform .1s ease-out;display:flex}.cb-btn .icon{width:2.6rem;height:2.6rem}.cb-btn.active{background:rgba(var(--accent-rgb), .35)}.cb-btn:focus{color:#000;background:#fff;transform:scale(1.12)}.cb-label{color:rgba(255,255,255,.87);text-align:center;white-space:nowrap;margin-top:.6rem;font-size:1.4rem}.list-overlay{background:linear-gradient(90deg,rgba(8,11,16,.9),rgba(8,11,16,.9) 88%,transparent);flex-direction:column;width:48rem;padding:2.7rem 6.4rem 2.7rem 4.8rem;animation:.2s ease-out slide-left;display:flex;position:absolute;top:0;bottom:0;left:0}.list-overlay h2{margin-bottom:1rem;font-size:1.8rem;font-weight:500}@keyframes slide-left{0%{opacity:0;transform:translate(-25%)}to{opacity:1;transform:none}}.options-panel{background:linear-gradient(270deg,rgba(8,11,16,.9),rgba(8,11,16,.9) 88%,transparent);width:42rem;padding:4rem 4.8rem 4rem 5.6rem;animation:.2s ease-out slide-right;position:absolute;top:0;bottom:0;right:0;overflow:auto}@keyframes slide-right{0%{opacity:0;transform:translate(25%)}to{opacity:1;transform:none}}.options-panel h2{margin-bottom:1.6rem;font-size:2.4rem;font-weight:600}.opt-row{justify-content:space-between;margin-bottom:.4rem}.opt-text{flex:1;min-width:0}.opt-text>span{display:block}.opt-label{font-size:1.6rem;font-weight:500}.opt-value{color:var(--accent);font-size:1.4rem}.progress-line{background:rgba(255,255,255,.27);border-radius:.2rem;height:.4rem;display:block;overflow:hidden}.progress-line>span{background:var(--accent);height:100%;display:block}.ch-program{color:var(--on-surface-variant);white-space:nowrap;text-overflow:ellipsis;font-size:1.4rem;display:block;overflow:hidden}.ch-progress{width:60%;margin-top:.3rem}.program-block{margin-bottom:1.2rem}.program-block>span{display:block}.pb-label{color:var(--accent);font-size:1.4rem}.pb-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:1.6rem;font-weight:500;display:-webkit-box;overflow:hidden}.pb-progress{margin:.4rem 0}.pb-desc{color:var(--on-surface-variant);-webkit-line-clamp:4;-webkit-box-orient:vertical;font-size:1.4rem;display:-webkit-box;overflow:hidden}.band-time{color:var(--accent);margin-right:1.2rem;font-size:1.6rem;font-weight:500}.band-progress{align-items:center;margin-top:.6rem;display:flex}.band-progress .progress-line{flex:1}.band-progress>span:last-child{margin-left:1.2rem;font-size:1.4rem}.band-next{margin-top:.6rem;font-size:1.6rem}.guide{flex-direction:column;height:100%;display:flex}.guide-head{flex:none;justify-content:space-between;align-items:center;padding-bottom:1rem;display:flex}.guide-head h1{font-size:2.2rem;font-weight:600}.guide-head .row>*+*{margin-left:1rem}.guide-hint{color:var(--on-surface-variant);flex:none;margin-top:.6rem;font-size:1.2rem}.epg-grid{--epg-ch:19.4rem;flex-direction:column;flex:1;min-height:0;display:flex}.epg-header{height:3.2rem;margin-left:var(--epg-ch);flex:none;position:relative}.epg-header span{color:var(--on-surface-variant);padding-left:.6rem;font-size:1.6rem;font-weight:500;position:absolute;top:.6rem}.epg-body{flex:1;min-height:0;position:relative;overflow:hidden}.epg-row{margin-top:.2rem;display:flex;position:absolute;left:0;right:0}.epg-channel{background:var(--surface);text-align:left;border:.2rem solid transparent;border-radius:.8rem;flex:none;align-items:center;width:19rem;margin-right:.4rem;padding:0 .8rem;display:flex}.epg-channel:focus{background:var(--surface-variant);border-color:var(--accent)}.epg-num{width:3.6rem;color:var(--on-surface-variant);flex:none;font-size:1.4rem}.epg-chname{-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;min-width:0;padding-left:.8rem;font-size:1.6rem;display:-webkit-box;overflow:hidden}.epg-programs{flex:1;position:relative}.epg-cell{background:var(--surface);text-align:left;background-clip:padding-box;border:.2rem solid transparent;border-right-width:.5rem;border-radius:.8rem;padding:.4rem .8rem;position:absolute;top:0;bottom:0;overflow:hidden}.epg-cell.live{background-color:#1e3446}.epg-cell:focus{background-color:var(--accent);color:#00121c;border-color:var(--accent)}.epg-title{white-space:nowrap;text-overflow:ellipsis;font-size:1.6rem;display:block;overflow:hidden}.epg-time{opacity:.8;font-size:1.2rem;display:block}.epg-now{background:var(--live);pointer-events:none;width:.2rem;position:absolute;top:0;bottom:0}.guide-overlay{background:linear-gradient(transparent,rgba(5,8,12,.85) 8%,rgba(5,8,12,.95));flex-direction:column;height:62%;padding:3.6rem 4.8rem 2rem;animation:.2s ease-out band-in;display:flex;position:absolute;bottom:0;left:0;right:0}.epg-grid.translucent .epg-channel,.epg-grid.translucent .epg-cell{background-color:rgba(21,27,35,.6)}.epg-grid.translucent .epg-cell.live{background-color:rgba(30,52,70,.75)}.epg-grid.translucent .epg-cell:focus{background-color:var(--accent)}.program-dialog{background:var(--surface);border-radius:1.6rem;width:64rem;padding:2.4rem}.program-dialog h2{font-size:2.4rem;font-weight:600}.pd-meta{color:var(--accent);margin-top:.6rem;font-size:1.6rem;font-weight:500}.pd-cat{color:var(--on-surface-variant);font-size:1.4rem}.pd-desc{max-height:22rem;margin-top:1.2rem;font-size:1.8rem;overflow:auto}.pd-buttons{flex-wrap:wrap;margin-top:2rem}.page{position:absolute;top:0;bottom:0;left:0;right:0}.vod-home>.shelf+.shelf{margin-top:2rem}.shelf-title{align-items:center;padding:0 0 .2rem 1.6rem;font-size:2.2rem;font-weight:600;display:flex}.shelf-logo{align-items:center;width:7.8rem;height:2.6rem;margin-right:1rem;display:inline-flex}.shelf-logo img,.shelf-logo b{max-width:100%;max-height:100%}.shelf-row{padding:1.2rem 1.6rem;display:flex;position:relative;overflow:hidden}.shelf-row>*{flex:none}.shelf-row>*+*{margin-left:1.6rem}.poster-card{background:var(--surface-variant);text-align:left;border:.1rem solid rgba(255,255,255,.08);border-radius:1.4rem;width:13rem;height:19.5rem;transition:transform .12s ease-out;position:relative;overflow:hidden}.poster-card:focus{border:.3rem solid var(--accent);transform:scale(1.08)}.poster-card img{object-fit:cover;width:100%;height:100%;position:absolute;top:0;left:0}.poster-progress{background:rgba(255,255,255,.27);height:.4rem;position:absolute;bottom:0;left:0;right:0}.poster-progress>span{background:var(--accent);height:100%;display:block}.poster-card.see-all{text-align:center;justify-content:center;align-items:center;font-size:1.6rem;font-weight:500;display:flex}.genre-chip{align-self:center}.platform-tile{background:#000;border:.3rem solid transparent;border-radius:1.2rem;width:26rem;height:14.6rem;transition:transform .12s ease-out;position:relative;overflow:hidden}.shelf-row>.platform-tile+.platform-tile{margin-left:1.8rem}.platform-tile:focus{border-color:#fff;transform:scale(1.08)}.pt-collage{display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.pt-collage img{object-fit:cover;flex:1;min-width:0;height:100%}.pt-shade,.pt-logo{position:absolute;top:0;bottom:0;left:0;right:0}.pt-logo{justify-content:center;align-items:center;display:flex}.pt-logo img{max-width:18rem;max-height:5.6rem}.pt-logo img.own-color{border-radius:.6rem}.pt-logo b{color:#fff;font-size:2.6rem;font-weight:900}.browse{flex-direction:column;height:100%;padding:2.4rem 4.8rem 2.7rem;display:flex}.browse-logo{align-items:center;width:8.8rem;height:2.4rem;display:inline-flex}.browse-logo img{max-width:100%;max-height:100%}.spacer{flex:1}.browse-grid{flex-wrap:wrap;flex:1;align-content:flex-start;min-height:0;margin:0 -1.2rem;padding:1.2rem;display:flex;overflow:auto}.grid-cell{flex:none;margin:0 1.8rem 1.8rem 0}.browse-grid{margin:0 -1.6rem 0 .2rem}.browse-grid .poster-card.plain{width:var(--cw);height:calc(var(--cw) * 1.5)}.browse-grid .wide-card{width:var(--cw);height:calc(var(--cw) * .5625)}.browse-info{flex:none;padding-left:1.4rem}.detail{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.detail-backdrop{background:var(--bg);position:absolute;top:0;bottom:0;left:0;right:0}.detail-backdrop img{object-fit:cover;width:100%;height:100%}.detail-backdrop span{position:absolute;top:0;bottom:0;left:0;right:0}.db-h{background:linear-gradient(90deg,rgba(7,12,24,.95),rgba(7,12,24,.75) 40%,rgba(7,12,24,.1))}.db-v{background:linear-gradient(transparent 55%, var(--bg))}.detail-scroll{padding:3.5rem 4.8rem 2.7rem;position:absolute;top:0;bottom:0;left:0;right:0;overflow:auto}.detail-scroll.series{padding:6rem 4.8rem 4rem}.back-btn{margin-bottom:1.6rem}.detail-row{display:flex}.detail-poster{background:var(--surface-variant);border:.1rem solid rgba(255,255,255,.12);border-radius:1.6rem;flex:none;width:22rem;height:33rem;margin-right:3.2rem;overflow:hidden}.detail-poster img{object-fit:cover;width:100%;height:100%}.detail-info{flex:1;min-width:0}.detail-info h1{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:3.4rem;font-weight:700;display:-webkit-box;overflow:hidden}.meta-chips{flex-wrap:wrap;margin-top:1.2rem;display:flex}.meta-chip{background:rgba(255,255,255,.1);border-radius:.8rem;margin:0 .8rem .8rem 0;padding:.4rem 1rem;font-size:1.6rem;font-weight:500}.meta-chip.gold{color:#ffc94d;background:rgba(255,201,77,.2)}.detail-plot{-webkit-line-clamp:5;-webkit-box-orient:vertical;margin-top:1.4rem;font-size:1.8rem;display:-webkit-box;overflow:hidden}.detail-credit{color:var(--on-surface-variant);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:.6rem;font-size:1.6rem;display:-webkit-box;overflow:hidden}.detail-actions{flex-wrap:wrap;margin-top:2.2rem;display:flex}.detail-actions>*{margin:0 1.2rem 1.2rem 0}.detail .shelf{margin-top:2.4rem;margin-left:-1.6rem}.season-chips{margin:2.8rem 0 .8rem;display:flex}.season-chips>*+*{margin-left:1rem}.season-gap{height:2.4rem}.episode-list{margin:0 -1rem;padding:0 1rem}.episode-row{margin:.3rem 0}.ep-thumb{background:var(--surface-variant);border-radius:.8rem;flex:none;width:12.8rem;height:7.2rem;position:relative;overflow:hidden}.ep-thumb img{object-fit:cover;width:100%;height:100%}.ep-text{flex:1;min-width:0}.ep-text>span{display:block}.ep-title{white-space:nowrap;text-overflow:ellipsis;font-size:1.6rem;font-weight:500;overflow:hidden}.ep-plot{color:var(--on-surface-variant);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:1.4rem;display:-webkit-box;overflow:hidden}.ep-min{flex:none;font-size:1.4rem}.ep-watched{color:var(--accent);flex:none}.vod-top{background:linear-gradient(rgba(5,8,12,.8),transparent);justify-content:space-between;align-items:flex-start;padding:2.7rem 4.8rem 4rem;display:flex;position:absolute;top:0;left:0;right:0}.vod-top h1{font-size:2.8rem;font-weight:600}.vod-top p{color:var(--on-surface-variant);font-size:1.6rem}.vod-bottom{background:linear-gradient(transparent,rgba(5,8,12,.9));padding:4.8rem 4.8rem 2.7rem;position:absolute;bottom:0;left:0;right:0}.vod-bar-row{align-items:center;display:flex}.vod-bar-row>*+*{margin-left:1.4rem}.vod-state{width:3.6rem;height:3.6rem}.vod-time{font-size:1.6rem;font-weight:500}.vod-bar{background:rgba(255,255,255,.27);border-radius:.3rem;flex:1;height:.6rem;position:relative;overflow:hidden}.vod-bar span{position:absolute;top:0;bottom:0;left:0}.vod-buffer{background:rgba(255,255,255,.4)}.vod-played{background:var(--accent)}.vod-bottom .control-bar{margin-top:1.8rem}.episodes-panel{background:linear-gradient(90deg,rgba(8,11,16,.9),rgba(8,11,16,.9) 88%,transparent);width:50rem;padding:2.7rem 6.4rem 2.7rem 4.8rem;animation:.2s ease-out slide-left;position:absolute;top:0;bottom:0;left:0;overflow:auto}.episodes-panel h2{margin-bottom:1.4rem;font-size:2.4rem;font-weight:600}.ep-code{color:var(--accent);flex:none;font-size:1.6rem;font-weight:500}.next-card{background:rgba(8,11,16,.9);border-radius:1.4rem;width:38rem;padding:2rem;position:absolute;bottom:4.8rem;right:4.8rem}.next-when{color:var(--accent);font-size:1.8rem;font-weight:500}.next-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:.6rem 0 1.4rem;font-size:1.8rem;display:-webkit-box;overflow:hidden}.home{flex-direction:column;height:100%;display:flex}.home-head{flex:none;align-items:flex-end;padding:0 1.6rem .4rem;display:flex}.home-head h1{font-size:2.4rem;font-weight:600}.home-head .muted{white-space:pre;padding-bottom:.2rem;font-size:1.6rem;font-weight:500}.home-shelves{flex:1;min-height:0;padding-bottom:4.8rem;overflow:auto}.home-block+.home-block,.home-block>.shelf+.shelf{margin-top:2.2rem}.home-empty{padding:4rem 1.6rem;font-size:1.8rem;font-weight:500}.hero{background:var(--surface-variant);border-radius:2rem;height:30rem;margin:.4rem 1.6rem 0;position:relative;overflow:hidden}.hero>img{object-fit:cover;width:100%;height:100%;position:absolute;top:0;left:0}.hero-shade{background:linear-gradient(90deg,rgba(0,0,0,.92),rgba(0,0,0,.45) 55%,transparent);position:absolute;top:0;bottom:0;left:0;right:0}.hero-content{flex-direction:column;justify-content:center;width:55%;padding:3.2rem;display:flex;position:absolute;top:0;bottom:0;left:0}.hero-label{color:var(--accent);font-size:1.6rem;font-weight:500}.hero h2{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:.4rem;font-size:2.8rem;font-weight:600;display:-webkit-box;overflow:hidden}.hero-meta{color:var(--on-surface-variant);white-space:pre;margin-top:.6rem;font-size:1.6rem;font-weight:500}.hero-plot{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:.8rem;font-size:1.6rem;display:-webkit-box;overflow:hidden}.hero-actions{margin-top:1.6rem}.channel-tile{flex-direction:column;width:18rem;display:flex}.ct-card{background:var(--surface-variant);border:.3rem solid transparent;border-radius:1.4rem;justify-content:center;align-items:center;width:18rem;height:10.1rem;padding:1.4rem;transition:transform .12s ease-out;display:flex}.ct-card:focus{border-color:var(--accent);transform:scale(1.08)}.ct-card .channel-logo{background:0 0}.ct-name-big{text-align:center;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:1.6rem;font-weight:500;display:-webkit-box;overflow:hidden}.ct-name,.ct-program{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ct-name{color:var(--on-surface-variant);margin-top:.6rem;font-size:1.4rem}.ct-program{font-size:1.6rem;font-weight:500}.ct-progress{margin-top:.4rem}.program-tile{background:var(--surface-variant);text-align:left;border:.3rem solid transparent;border-radius:1.4rem;align-items:flex-start;width:28rem;height:12.8rem;padding:1.4rem;transition:transform .12s ease-out;display:flex}.program-tile:focus{border-color:var(--accent);transform:scale(1.06)}.pt-logo-box{flex:none;justify-content:center;align-items:center;width:5.6rem;height:5.6rem;margin-right:1.2rem;display:flex}.pt-text{flex:1;min-width:0}.pt-text>span{display:block}.pt-time{color:var(--accent);font-size:1.6rem;font-weight:500}.pt-badge{background:var(--live);color:#fff;border-radius:.4rem;margin-left:.8rem;padding:.1rem .6rem;font-size:1.2rem}.pt-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:.4rem;font-size:1.6rem;font-weight:500;display:-webkit-box;overflow:hidden}.pt-channel{color:var(--on-surface-variant);white-space:nowrap;text-overflow:ellipsis;font-size:1.4rem;overflow:hidden}.pin-dialog{background:var(--surface);text-align:center;border-radius:1.6rem;width:42rem;padding:2.4rem}.pin-dialog h2{font-size:2.2rem;font-weight:600}.pin-dots{letter-spacing:.6rem;margin-top:1.2rem;font-size:3.4rem}.pin-error{color:var(--error);padding:.8rem 0;font-size:1.6rem}.pin-pad{flex-wrap:wrap;justify-content:center;width:24.8rem;margin:0 auto;display:flex}.pin-key{justify-content:center;width:7.2rem;height:5.6rem;margin:.4rem;font-size:2.2rem}.pin-pad .pin-key:last-child{margin-right:8.4rem}.preview-lock{width:4rem;height:4rem}.epg-mapping{height:100%;padding:2.7rem 4.8rem;display:flex}.em-left{flex:none;width:32rem;margin-right:3.2rem}.em-left h1{margin-top:1.2rem;font-size:2.8rem;font-weight:600}.em-channel{color:var(--accent);margin-top:.8rem;font-size:2.2rem;font-weight:600}.em-filter{margin-top:2.4rem}.em-list{flex:1;margin:-.4rem -1.2rem;padding:.4rem 1.2rem;overflow:auto}.em-auto{color:var(--accent);font-size:1.6rem;font-weight:500}.em-id{font-size:1.4rem}.search>*+*{margin-top:1.8rem}.search-row{padding:0 1.6rem}.history-row{align-items:center}.search-empty{padding:0 1.6rem;font-size:1.8rem;font-weight:500}.search-programs{padding:0 1.6rem}.search-programs .shelf-title{margin-bottom:.6rem;padding-left:0}.search-prog{margin-bottom:.4rem}.sp-time{text-align:right;width:18rem;color:var(--on-surface-variant);flex:none;font-size:1.4rem}.sp-time.live{color:var(--accent)}.settings{height:100%;display:flex}.set-sections{flex:none;width:24rem;margin-left:-1rem;margin-right:2.4rem;padding:.4rem 1rem;overflow:auto}.set-section{margin-bottom:.4rem;font-size:1.6rem;font-weight:500}.set-section .icon{flex:none}.set-section.selected .icon{color:var(--accent)}.set-panel{flex:1;min-width:0;padding:2rem 2.8rem;overflow:auto}.set-panel h2{margin-bottom:.8rem;font-size:2.4rem;font-weight:600}.set-row{margin-bottom:.4rem}.set-sub{color:var(--on-surface-variant);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:1.4rem;display:-webkit-box;overflow:hidden}.set-value{max-width:40%;color:var(--accent);text-align:right;white-space:nowrap;text-overflow:ellipsis;flex:none;font-size:1.6rem;font-weight:500;overflow:hidden}.set-header{color:var(--on-surface-variant);padding:1.8rem 1.2rem .6rem;font-size:1.6rem;font-weight:500}.set-hint{color:var(--on-surface-variant);padding:1.6rem 1.2rem;font-size:1.6rem}.set-about h3{font-size:2.8rem;font-weight:600}.set-about p{margin-top:.6rem;font-size:1.6rem}.set-version{color:var(--accent)}.set-ua{word-break:break-all;font-size:1.2rem}.dialog p{white-space:pre-line}.pt-badge.reminder{background:var(--accent);color:#000}.subtitle-layer{z-index:5;text-align:center;pointer-events:none;line-height:1.25;position:absolute;bottom:7%;left:8%;right:8%}.subtitle-line{white-space:pre-wrap;text-shadow:-.15rem -.15rem #000,.15rem -.15rem #000,-.15rem .15rem #000,.15rem .15rem #000;margin:0 auto;padding:0 .6rem;display:table}.subtitle-layer.boxed .subtitle-line{text-shadow:none;background:rgba(0,0,0,.7)}.poster-card.plain{border:.2rem solid transparent;border-radius:.6rem;width:11.6rem;height:17.4rem;transition:transform .12s ease-out}.poster-card.plain:focus,.wide-card:focus{border-color:#fff;transform:scale(1.1)}.shelf-row>.poster-card.see-all:only-child,.shelf-row>.poster-card.plain~.see-all{border-radius:.6rem;width:11.6rem;height:17.4rem}.shelf-info{white-space:nowrap;text-overflow:ellipsis;height:2.8rem;margin:0;padding:.2rem 1.6rem 0;font-size:1.5rem;overflow:hidden}.shelf-info span{white-space:pre;color:rgba(255,255,255,.75)}.wide-card{background:var(--surface-variant);text-align:left;border:.2rem solid transparent;border-radius:.6rem;width:20rem;height:11.25rem;transition:transform .12s ease-out;position:relative;overflow:hidden}.wide-card img{object-fit:cover;width:100%;height:100%;position:absolute;top:0;left:0}.wc-shade{background:linear-gradient(transparent,rgba(0,0,0,.85));height:50%;position:absolute;bottom:0;left:0;right:0}.wc-text{position:absolute;bottom:.9rem;left:1rem;right:1rem}.wc-title{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:1.4rem;font-weight:700;display:block;overflow:hidden}.wc-sub{color:rgba(255,255,255,.75);font-size:1.1rem;display:block}.wc-badge{color:#fff;background:#e50914;border-radius:.3rem;padding:.15rem .6rem;font-size:1.1rem;font-weight:700;position:absolute;top:.6rem;right:.6rem}.wc-progress{height:.3rem}.badge-sm.archive{color:#fff;background:#7e57c2}.archive-band .vod-bar-row{margin-top:.8rem}.home-edit{height:100%;padding:2.4rem 4.8rem 4rem;overflow-y:auto}.he-head{justify-content:space-between;align-items:center;display:flex}.he-head h1{font-size:2.8rem;font-weight:600}.he-hint{color:var(--on-surface-variant);margin:.6rem 0 1.4rem;font-size:1.5rem}.he-list{max-width:80rem}.he-row{align-items:center;padding:.3rem .6rem;display:flex}.he-row>.he-main{background:var(--surface);flex:1;font-size:1.8rem}.he-row.moving>.he-main{background:rgba(var(--accent-rgb), .25);border-color:var(--accent)}.he-num{width:3.2rem;color:var(--on-surface-variant)}.he-label{flex:1}.he-moving{background:var(--accent);color:#000;border-radius:.4rem;padding:.2rem .8rem;font-size:1.3rem;font-weight:700}.he-switch{background:var(--surface);min-width:9rem;color:var(--on-surface-variant);border:.3rem solid transparent;border-radius:1rem;flex:none;margin-left:1rem;padding:.9rem 1.2rem;font-size:1.6rem;transition:transform .1s ease-out}.he-switch.on{color:var(--accent);font-weight:600}.he-switch:focus{border-color:#fff;transform:scale(1.05)}.icon-btn{align-items:center;display:inline-flex}.icon-btn>svg{width:2rem;height:2rem;margin-right:.6rem}.home-head>.btn+.btn{margin-left:1rem}.he-row>.he-main:focus{background:var(--surface-variant)}.topbar{z-index:2;position:relative}.home.with-hero{z-index:1;position:relative}.hero2{flex:none;height:17.6rem;position:relative}.hero2-bg{z-index:-1;pointer-events:none;width:68%;height:62%;position:fixed;top:0;right:0}.hero2-bg>img{object-fit:cover;width:100%;height:100%}.hero2-bg{-webkit-mask-composite:source-in;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 45%),linear-gradient(#000 50%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 45%),linear-gradient(#000 50%,transparent 100%);-webkit-mask-composite:source-in;mask-composite:intersect}.hero2-actions{position:absolute;top:0;right:1.6rem}.home-actions{align-items:center;display:flex}.home-actions>*+*{margin-left:1rem}.hero2-info{flex-direction:column;justify-content:flex-end;width:55%;height:100%;padding-bottom:1rem;padding-left:1.6rem;display:flex}.hero2-kind{letter-spacing:.3rem;color:#e50914;font-size:1.2rem;font-weight:700}.hero2-title{white-space:nowrap;text-overflow:ellipsis;margin-top:.4rem;font-size:2.8rem;font-weight:900;line-height:1.2;overflow:hidden}.hero2-meta{align-items:baseline;margin-top:.4rem;font-size:1.4rem;display:flex}.hero2-meta>*+*{margin-left:1rem}.hero2-meta>b{color:#46d369}.hero2-plot{color:rgba(255,255,255,.65);white-space:nowrap;text-overflow:ellipsis;min-height:1.6rem;margin-top:.4rem;font-size:1.2rem;overflow:hidden}.hero2-buttons{margin-top:1rem}.hero2-buttons>*+*{margin-left:1rem}.home.with-hero .home-shelves{overflow:hidden}.home-list{transition:transform .3s ease-out}.wc-progress>span{background:#e50914}.home-list{position:relative}.grid-spacer{flex:none;width:100%}.round-btn{color:#fff;background:rgba(0,0,0,.45);border:.2rem solid transparent;border-radius:50%;flex:none;justify-content:center;align-items:center;width:4rem;height:4rem;transition:transform .12s ease-out;display:inline-flex}.round-btn>svg{width:2rem;height:2rem}.round-btn:focus{border-color:#fff;transform:scale(1.1)}.browse-logo b{font-size:1.5rem}.extensions .ext-row{align-items:center}.ext-add,.ext-chip{align-items:center;display:inline-flex}.ext-add>svg{width:1.8rem;height:1.8rem;margin-right:.6rem}.ext-chip>img{object-fit:contain;width:2rem;height:2rem;margin-right:.8rem}.ext-note{padding:0 1.6rem 1.6rem;font-size:1.5rem}.recordings{max-width:100rem}.rec-note{margin:1rem 0 1.4rem;font-size:1.5rem}.rec-row{background:var(--surface);margin-bottom:.6rem}.rec-repeat{background:rgba(var(--accent-rgb), .25);color:var(--accent);border-radius:.4rem;flex:none;padding:.2rem .8rem;font-size:1.3rem}.page-flow{flex:1;min-height:0;position:relative}.browse-bar{border:.1rem solid rgba(255,255,255,.08);border-radius:1.4rem;flex:none;align-items:center;height:8.4rem;margin-bottom:1rem;padding:0 2rem;display:flex}.browse-bar>*+*{margin-left:1.6rem}.browse-bar>.spacer+*{margin-left:0}.bb-id{flex-direction:column;min-width:0;display:flex}.bb-title{white-space:nowrap;text-overflow:ellipsis;max-width:50rem;font-size:2.8rem;font-weight:700;overflow:hidden}.bb-count{color:rgba(255,255,255,.8);margin-top:.4rem;font-size:1.3rem}.bb-tabs{background:rgba(0,0,0,.35);border-radius:2rem;padding:.3rem;display:flex}.bb-tab{color:#fff;white-space:nowrap;border-radius:1.7rem;padding:.6rem 1.5rem;font-size:1.4rem}.bb-tab-count{opacity:.7;white-space:pre;font-size:1.2rem}.bb-tab.selected{color:#0d1117;background:#fff;font-weight:700}.bb-tab:focus{background:var(--accent);color:#0d1117}.bb-sorts>*+*{margin-left:.8rem}.bb-genre{white-space:nowrap}.field-row{align-items:stretch;display:flex}.field-row>.field-box{flex:1;align-items:center;min-width:0;min-height:5.2rem;display:flex}.eye-btn{background:var(--surface-variant);width:5.2rem;min-height:5.2rem;color:var(--on-surface-variant);border:.3rem solid transparent;border-radius:1rem;flex:none;justify-content:center;align-items:center;margin-left:.8rem;transition:transform .12s ease-out;display:flex}.eye-btn>svg{width:2.6rem;height:2.6rem}.eye-btn:focus{border-color:var(--accent);transform:scale(1.05)}.onb-help{border-radius:2rem;margin-top:1.2rem;padding:1.8rem 2.2rem}.form-side>.onb-help:first-child{margin-top:0}.onb-help h3{margin-bottom:1rem;font-size:1.8rem;font-weight:600}.onb-help ul{margin:0;padding-left:2rem}.onb-help li{color:var(--on-surface-variant);font-size:1.4rem;line-height:1.4}.onb-help li+li{margin-top:.6rem}
|
|
2
|
+
/*$vite$:1*/`,document.head.appendChild(e),`queueMicrotask`in self||(self.queueMicrotask=e=>{Promise.resolve().then(e)}),Promise.prototype.finally||(Promise.prototype.finally=function(e){let t=typeof e==`function`?e:()=>{};return this.then(e=>Promise.resolve(t()).then(()=>e),e=>Promise.resolve(t()).then(()=>{throw e}))});var t,n,r,i,a,o,s,c,l,u,d,f={},p=[],m=/^m(i|n|o|s|text|space)$/,h=Array.isArray,g=p.slice,_=Object.assign;function v(e){e&&e.parentNode&&e.remove()}function y(e,r,i,a,o){var s={type:e,props:r,key:i,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:o||++n,__i:-1,__u:0};return!o&&t.vnode&&t.vnode(s),s}function b(e){return e.children}function x(e,t){this.props=e,this.context=t,this.__g=0}function S(e,t){if(t==null)return e.__&&S(e.__,e.__i+1);for(var n;t<e.__k.length;t++)if((n=e.__k[t])&&n.__e)return n.__e;return typeof e.type!=`function`||e.props.__P?null:S(e)}function ee(e){if((e=e.__)&&e.__c&&!e.props.__P)return e.__e=null,e.__k.some(function(t){return t&&(e.__e=t.__e)}),ee(e)}function C(e){(8&e.__g||(e.__g|=8,i.push(e),o++))&&a==t.debounceRendering||((a=t.debounceRendering)||queueMicrotask)(w)}function w(){var e,n,r,c,l,u,d,f,p;try{for(n=1;i.length;)i.length>n&&i.sort(s),e=i.shift(),n=i.length,8&e.__g&&(c=void 0,l=void 0,u=(l=(r=e).__v).__e,d=[],f=[],(p=r.__P)&&((c=_({constructor:void 0},l)).__v=l.__v+1,t.vnode&&t.vnode(c),k(p,c,l,r.__n,p.namespaceURI,32&l.__u?[u]:null,d,u||S(l),32&l.__u,f),c.__v=l.__v,c.__.__k[c.__i]=c,oe(d,c,f),l.__=l.__e=null,c.__e!=u&&ee(c)))}finally{(o=i.length)&&(a||queueMicrotask)(w)}}function te(e,t,n,r,i,a,o,s,c,l,u){var d,m,h,g,_,v,y=r.__k||p,b=t.length;for(c=T(n,t,y,c,b),d=0;d<b;d++)(h=n.__k[d])!=null&&(m=~h.__i&&y[h.__i]||f,h.__i=d,v=k(e,h,m,i,a,o,s,c,l,u),g=h.__e,(m.ref!=h.ref||8&m.__u)&&(m.ref&&ce(m.ref,null,h,m),h.ref&&u.push(h.ref,h.__c||g,h)),_=_||g,4&h.__u?(c=E(h,c,e,!m.__v),m.__e&&(m.__e=null)):typeof h.type==`function`&&v!==void 0?c=v:g&&(c=g.nextSibling),h.__u&=-21);return n.__e=_,c}function T(e,t,n,r,i){var a,o,s,c,l,u,d,f,p,m=n.length,g=m,_=0,v=0,x=e.__k=Array(i);for(a=0;a<i;a++)(o=t[a])!=null&&typeof o!=`boolean`&&typeof o!=`function`?(typeof o!=`object`||o.constructor==String?o=x[a]=y(null,o):h(o)?o=x[a]=y(b,{children:o}):o.constructor===void 0&&o.__b?o=x[a]=y(o.type,o.props,o.key,o.ref,o.__v):x[a]=o,c=a+_,o.__=e,o.__b=e.__b+1,s=null,~(l=o.__i=D(o,n,c,g))&&(g--,(s=n[l])&&(s.__u|=2)),s&&s.__v?(o.__u|=16,l==c-1?_--:l==c+1?_++:l!=c&&(l>c?_--:_++,v=1)):(~l||(i>m?_--:i<m&&_++),typeof o.type!=`function`&&(o.__u|=4))):x[a]=null;if(v){for(u=[],d=[],a=0;a<i;a++)if((o=x[a])&&16&o.__u){for(_=0,f=u.length;_<f;)u[p=_+f>>1]<o.__i?_=p+1:f=p;u[_]=o.__i,d[a]=_+1}for(_=u.length;a--;)d[a]&&(d[a]==_?_--:x[a].__u|=4)}if(g)for(a=0;a<m;a++)!(s=n[a])||2&s.__u||(s.__e==r&&(r=S(s)),le(s,s));return r}function E(e,t,n,r){var i,a,o,s;if(typeof e.type==`function`){if(e.props.__P)return t;if(i=e.__k)for(a=0;a<i.length;a++)i[a]&&(i[a].__=e,t=E(i[a],t,n,!1));return t}for(t&&!t.parentNode&&(t=S(e))&&!t.parentNode&&(t=null),o=e.__e,s=t;s&&s.nodeType==8;)s=s.nextSibling;for(o!=s&&(!r&&n.moveBefore&&o.parentNode?n.moveBefore(o,t):n.insertBefore(o,t||null)),t=o;(t=t&&t.nextSibling)&&t.nodeType==8&&!t.data.startsWith(`$s`););return t}function D(e,t,n,r){var i,a=e.key,o=e.type,s=t[n],c=s&&!(2&s.__u);if(s===null&&a==null||c&&a==s.key&&o==s.type)return n;if(r>+!!c){for(i=n-1;i>=0;i--)if((s=t[i])&&!(2&s.__u)&&a==s.key&&o==s.type)return i;for(i=n+1;i<t.length;i++)if((s=t[i])&&!(2&s.__u)&&a==s.key&&o==s.type)return i}return-1}function O(e,t,n){n==null&&(n=``),t[0]==`-`?e.setProperty(t,n):e[t]=n}function ne(e,t,n,r,i){var a,o;if(t==`style`){if(typeof n==`string`)e.style.cssText=n;else{if(typeof r==`string`&&(e.style.cssText=r=``),r)for(t in r)n&&t in n||O(e.style,t);if(n)for(t in n)r&&n[t]==r[t]||O(e.style,t,n[t])}}else if(t[0]==`o`&&t[1]==`n`)(e.__e||(e.__e={}))[t]=n,n&&r||(o=d[t]||(d[t]=re(t)),(e.__a||(e.__a={}))[t]=u,a=t!=(t=t.replace(l,`$1`)),(t=t.slice(2))[0]<`a`&&(t=t.toLowerCase()),n?e.addEventListener(t,o,a):e.removeEventListener(t,o,a));else{if(i==`http://www.w3.org/2000/svg`)t=t.replace(/xlink(H|:h)/,`h`).replace(/sName$/,`s`);else if(t!=`width`&&t!=`height`&&t!=`href`&&t!=`list`&&t!=`form`&&t!=`tabIndex`&&t!=`download`&&t!=`rowSpan`&&t!=`colSpan`&&t!=`role`&&t!=`popover`&&t in e)try{e[t]=n==null?``:n;return}catch(e){}if(typeof n==`function`)return;n==null||!1===n&&t[4]!=`-`?e.removeAttribute(t):e.setAttribute(t,t==`popover`&&n==1?``:n)}}function re(e){return function(n){var r=this.__e;if(r){if(r=r[e],n[c]==null)n[c]=u++;else if(n[c]<this.__a[e])return;return r(t.event?t.event(n):n)}}}function k(e,n,r,i,a,o,s,c,l,u){var d,f,m,g,y,ee,C,w,T,E,D,O,ne,re,k,oe,ce,A,de=n.type;if(n.constructor!==void 0)return null;128&r.__u&&(l=32&r.__u,d=r.__c.__z)&&(n.__u|=l,f=o=[],d.nodeType==8?c=ie(d,o):o.push(d),c=o[0]||c),(d=t.__b)&&d(n);n:if(typeof de==`function`){m=s.length;try{if(w=n.props,T=(d=de.prototype)&&d.render,E=(d=de.contextType)&&i[d.__c],D=d?E?E.props.value:d.__:i,(g=r.__c)?(n.__c=g,2&g.__g&&(g.__g|=1)):(T?n.__c=g=new de(w,D):(n.__c=g=new x(w,D),g.constructor=de,g.render=ue),E&&E.sub(g),g.state||(g.state={}),g.__n=i,g.__g|=8,g.__h=[],g.__k=[]),T&&(g.__s||(g.__s=g.state),de.getDerivedStateFromProps&&(g.__s==g.state&&(g.__s=_({},g.__s)),_(g.__s,de.getDerivedStateFromProps(w,g.__s)))),y=g.props,ee=g.state,g.__v=n,r.__c){if(w!==y&&T&&!de.getDerivedStateFromProps&&g.componentWillReceiveProps&&g.componentWillReceiveProps(w,D),n.__v==r.__v&&!(8&g.__g)||!(4&g.__g)&&g.shouldComponentUpdate&&!1===g.shouldComponentUpdate(w,g.__s,D)){n.__v!=r.__v&&(g.props=w,g.state=g.__s,g.__g&=-9),n.__e=r.__e,n.__k=r.__k,n.__k.some(function(e){e&&(e.__=n)}),p.push.apply(g.__h,g.__k),g.__k=[],g.__h.length&&s.push(g),c=S(r);break n}g.componentWillUpdate&&g.componentWillUpdate(w,g.__s,D),T&&g.componentDidUpdate&&g.__h.push(function(){g.componentDidUpdate(y,ee,C)})}else T&&!de.getDerivedStateFromProps&&g.componentWillMount&&g.componentWillMount(),T&&g.componentDidMount&&g.__h.push(g.componentDidMount);if(g.context=D,g.props=w,g.__P=e,g.__g&=-5,O=t.__r,ne=0,T)g.state=g.__s,g.__g&=-9,O&&O(n),d=g.render(g.props,g.state,g.context),p.push.apply(g.__h,g.__k),g.__k=[];else do g.__g&=-9,O&&O(n),d=g.render(g.props,g.state,g.context),g.state=g.__s;while(8&g.__g&&++ne<25);g.state=g.__s,g.getChildContext&&(i=_({},i,g.getChildContext())),T&&r.__c&&g.getSnapshotBeforeUpdate&&(C=g.getSnapshotBeforeUpdate(y,ee)),re=d&&d.type===b&&d.key==null?d.props.children:d,w.__P&&(d=c,a=(e=w.__P).namespaceURI,l=o=null,r.props&&r.props.__P!=e&&(r.__k.some(function(e){e&&le(e,e)}),r.__k=null),c=r.__k?S(r,0):null),c=te(e,h(re)?re:[re],n,r,i,a,o,s,c,l,u),w.__P&&(n.__e=null,c=d),n.__u&=-161,f&&f.some(v),g.__h.length&&s.push(g),1&g.__g&&(g.__g&=-4)}catch(e){if(s.length=m,n.__v=null,l||o){if(e.then){if(k=0,n.__u|=128|l,o){for(~(ce=o.indexOf(c||void 0))||(ce=o.length);(A=o[ce-1])&&A.nodeType==8;)ce--;for(;ce<o.length;ce++)if(A=o[ce]){if(o[ce]=null,A.nodeType==8){if(A.data.startsWith(`$s`))k++||(oe=A);else if(k&&A.data.startsWith(`/$s`)&&!--k)break}else if(!k)break}}if(!oe){for(;c&&c.nodeType==8&&c.nextSibling;)c=c.nextSibling;oe=c}(d=ie(oe=n.__c.__z||(n.__c.__z=oe)))?(n.__e=oe,c=d):n.__e=c,c=c&&c.nextSibling}else o&&o.some(v)}else n.__e=r.__e;n.__k||(n.__k=r.__k||[]),e.then||ae(n),t.__e(e,n,r)}}else c=n.__e=se(r.__e,n,r,i,a,o,s,l,u,e);return(d=t.diffed)&&d(n),c}function ie(e,t){if(e&&e.nodeType==8&&e.data.startsWith(`$s`))for(var n=1;e=e.nextSibling;){if(e.nodeType==8){if(e.data.startsWith(`$s`))n++;else if(e.data.startsWith(`/$s`)&&!--n)return e}t&&t.push(e)}}function ae(e){e&&(e.__c&&(e.__c.__g|=4),e.__k&&e.__k.some(ae))}function oe(e,n,r){for(var i=0;i<r.length;)ce(r[i++],r[i++],r[i++]);t.__c&&t.__c(n,e),e.some(function(n){try{e=n.__h,n.__h=[],e.some(function(e){e.call(n)})}catch(e){t.__e(e,n.__v)}})}function se(e,n,r,i,a,o,s,c,l,u){var d,p,_,y,b,x,ee,C,w,T=r.props||f,E=n.props,D=n.type;if(D==`svg`?a=`http://www.w3.org/2000/svg`:D==`math`?a=`http://www.w3.org/1998/Math/MathML`:a||(a=`http://www.w3.org/1999/xhtml`),o){for(d=0;d<o.length;d++)if((b=o[d])&&(D?b.localName==D:b.nodeType==3)){e=b,o[d]=null;break}}if(!e){if(C=u.ownerDocument||document,!D)return C.createTextNode(E);e=C.createElementNS(a,D,E.is&&E),c&&(t.__m&&t.__m(n,o),c=!1),o=null}if(D){if(u=D==`template`?e.content:e,o=D==`textarea`&&E.defaultValue!=null?null:o&&g.call(u.childNodes),!c&&o)for(T={},d=0;d<e.attributes.length;d++)T[(b=e.attributes[d]).name]=b.value;for(d in T)b=T[d],d==`dangerouslySetInnerHTML`?_=b:d==`children`||d in E||d==`value`&&`defaultValue`in E||d==`checked`&&`defaultChecked`in E||ne(e,d,null,b,a);for(d in w=1&r.__u,E)b=E[d],d==`children`?y=b:d==`dangerouslySetInnerHTML`?p=b:d==`value`?x=b:d==`checked`?ee=b:c&&typeof b!=`function`||!(T[d]!==b||w&&b!=null)||ne(e,d,b,T[d],a);p?(c||_&&(p.__html==_.__html||p.__html==e.innerHTML)||(e.innerHTML=p.__html),n.__k=[]):(_&&(e.textContent=``),(D==`foreignObject`||a==`http://www.w3.org/1998/Math/MathML`&&m.test(D))&&(a=`http://www.w3.org/1999/xhtml`),te(u,h(y)?y:[y],n,r,i,a,o,s,o?o[0]:r.__k&&S(r,0),c,l),o&&o.some(v)),c&&D!=`textarea`||(d=`value`,D==`progress`&&x==null?e.removeAttribute(d):x==null||x===e[d]&&(D!=`progress`||x)||ne(e,d,x,T[d],a),d=`checked`,ee!=null&&ee!=e[d]&&ne(e,d,ee,T[d],a))}else T===E||c&&e.data==E||(e.data=E);return e}function ce(e,n,r,i){try{typeof e==`function`?n?n.__x=e(n)||1:i&&(i=i.__c||i.__e)&&(n=i.__x)&&(i.__x=null,typeof n==`function`?n():e(null)):e.current=n}catch(e){t.__e(e,r)}}function le(e,n,r){var i,a,o,s;if(t.unmount&&t.unmount(e),!(i=e.ref)||i.current&&i.current!=e.__e||ce(i,null,n,e),i=e.__c){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(e){t.__e(e,n)}i.__P=i.__n=null}if(i=e.__k)for(s=0;s<i.length;s++)i[s]&&le(i[s],n,typeof e.type!=`function`||r&&!e.props.__P);!r&&(i=e.__c)&&(i=i.__z)&&(a=ie(i,o=[]))&&(i==e.__e&&o.some(v),v(a),v(i)),(i=e.__e)&&(r||v(i),i.__e&&(i.__e=null)),e.__e=e.__c=e.__=null}function ue(e,t,n){return this.constructor(e,n)}function A(e,n){var r,i,a,o;t.__&&t.__(e,n),n.nodeType==9&&(n=n.documentElement),i=(r=e&&32&e.__u)?null:n.__k,n.__k=y(b,{children:[e]}),a=[],o=[],k(n,n.__k,i||f,f,n.namespaceURI,i?null:n.firstChild?g.call(n.childNodes):null,a,i?i.__e:n.firstChild,r,o),oe(a,n.__k,o),n.__k.props.children=null}t={__e:function(e,t,n,r){for(var i,a,s;t=t.__;)if((i=t.__c)&&!(1&i.__g)){i.__g|=4;try{if((s=(a=i.constructor)&&a.getDerivedStateFromError)&&i.setState(a.getDerivedStateFromError(e)),i.componentDidCatch&&(i.componentDidCatch(e,r||{}),s=1),s&&8&i.__g)return void(i.__g|=2)}catch(t){e=t}}throw o=0,e}},n=0,r=function(e){return e!=null&&e.constructor===void 0},x.prototype.setState=function(e,t){var n=this.__s;n&&n!=this.state||(n=this.__s=_({},this.state)),typeof e==`function`&&(e=e(_({},n),this.props)),e&&(_(n,e),this.__v&&(t&&this.__k.push(t),C(this)))},x.prototype.forceUpdate=function(e){this.__v&&(this.__g|=4,e&&this.__h.push(e),C(this))},x.prototype.render=b,i=[],o=0,s=function(e,t){return e.__v.__b-t.__v.__b},c=Symbol(),l=/(PointerCapture)$|Capture$/i,u=0,d={};var de=0;Array.isArray;function j(e,n,r,i,a,o){n||(n={});var s,c,l=n;if(`ref`in l&&typeof e!=`function`)for(c in l={},n)c==`ref`?s=n[c]:l[c]=n[c];var u={type:e,props:l,key:r,ref:s,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--de,__i:-1,__u:0};return(a||o)&&(u.__source=a,u.__self=o),t.vnode&&t.vnode(u),u}var fe,M,pe,me,he=Object.is,ge=0,_e=[],ve=[],ye=t,be=ye.__b,xe=ye.__r,Se=ye.diffed,Ce=ye.__c,we=ye.unmount,Te=ye.__;function Ee(e,t){ye.__h&&ye.__h(M,e,ge||t),ge=0;var n=M.__H||(M.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function N(e){return ge=1,De(Ie,e)}function De(e,t,n){var r=Ee(fe++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):Ie(void 0,t),function(e){var t=r.__N?r.__N[0]:r.__[0],n=r.t(t,e);he(t,n)||(r.__N=[n,r.__[1]],r.__c.setState({}))}],r.__c=M,!M.__f)){M.__f=!0;var i=M.shouldComponentUpdate;M.shouldComponentUpdate=function(e,t,n){var r=this.__H;if(!r)return!0;var a=!1,o=this.props!=e;if(r.__.some(function(e){e.__N&&(a=!0,he(e.__[0],e.__N[0])||(o=!0))}),i){var s=i.call(this,e,t,n);return a?s||o:s}return!a||o}}return r.__}function P(e,t){var n=Ee(fe++,3);!ye.__s&&Fe(n.__H,t)&&(n.__P=!0,n.__=e,n.u=t,M.__H.__h.push(n))}function F(e){return ge=5,Oe(function(){return{current:e}},[])}function Oe(e,t){var n=Ee(fe++,7);return Fe(n.__H,t)&&(n.__=e(),n.__H=t),n.__}function ke(){var e;do{for(;e=ve.shift();)try{Ne(e)}catch(t){ye.__e(t,{__:(e=e.__P)&&e.__v})}for(;e=_e.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(Ne),t.__h.some(Pe),t.__h=[]}catch(n){t.__h=[],ye.__e(n,e.__v)}}}while(ve.length)}ye.__b=function(e){M=null,be&&be(e)},ye.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Te&&Te(e,t)},ye.__r=function(e){xe&&xe(e),fe=0;var t=(M=e.__c).__H;t&&(pe==M?M.__h=[]:(t.__h.some(Ne),t.__h.some(Pe),fe=0),t.__h=[],t.__.some(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})),pe=M},ye.diffed=function(e){Se&&Se(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&Me(_e.push(t)),t.__H.__.some(function(e){e.u&&(e.__H=e.u)})),pe=M=null},ye.__c=function(e,t){t.some(function(e){try{e.__h.some(Ne),e.__h=e.__h.filter(function(e){return!e.__||Pe(e)})}catch(n){t.some(function(e){e.__h&&(e.__h=[])}),t=[],ye.__e(n,e.__v)}}),Ce&&Ce(e,t)},ye.unmount=function(e){we&&we(e);var t,n,r=e.__c;r&&r.__H&&(r.__H.__.some(function(r){try{if(r.__P&&r.__c){if(n===void 0){for(n=e.__;n&&(!n.__c||!n.__c.__P);)n=n.__;n=n&&n.__c}r.__P=n,Me(ve.push(r))}else Ne(r)}catch(e){t=e}}),r.__H=void 0,t&&ye.__e(t,r.__v))};var Ae=typeof requestAnimationFrame==`function`;function je(e){var t,n=function(){clearTimeout(r),Ae&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);Ae&&(t=requestAnimationFrame(n))}function Me(e){e!=1&&me==ye.requestAnimationFrame||((me=ye.requestAnimationFrame)||je)(ke)}function Ne(e){var t=M,n=e.__c;typeof n==`function`&&(e.__c=void 0,n()),M=t}function Pe(e){var t=M;e.__c=e.__(),M=t}function Fe(e,t){return!e||e.length!=t.length||t.some(function(t,n){return!he(t,e[n])})}function Ie(e,t){return typeof t==`function`?t(e):t}var Le=Symbol.for(`preact-signals`);function Re(){if(We>1)We--;else{var e,t=!1;for((function(){var e=Je;for(Je=void 0;e!==void 0;){var t=e.S;if(t.v===e.v)for(var n=t.t;n!==void 0;n=n.x)n.i===e.i&&(n.i=t.i);e=e.o}})();Ue!==void 0;){var n=Ue;for(Ue=void 0,Ge++;n!==void 0;){var r=n.u;if(n.u=void 0,n.f&=-3,!(8&n.f)&&Qe(n))try{n.c()}catch(n){t||(e=n,t=!0)}n=r}}if(Ge=0,We--,t)throw e}}function ze(e){if(We>0)return e();qe=++Ke,We++;try{return e()}finally{Re()}}var Be,Ve=void 0;function He(e){var t=Ve,n=Be;Ve=void 0,Be=void 0;try{return e()}finally{Ve=t,Be=n}}var Ue=void 0,We=0,Ge=0,Ke=0,qe=0,Je=void 0,Ye=0;function Xe(e){if(Ve!==void 0){var t=e.n;if(t===void 0||t.t!==Ve)return t={i:0,S:e,p:Ve.s,n:void 0,t:Ve,e:void 0,x:void 0,r:t},Ve.s!==void 0&&(Ve.s.n=t),Ve.s=t,e.n=t,32&Ve.f&&e.S(t),t;if(t.i===-1)return t.i=0,t.n!==void 0&&(t.n.p=t.p,t.p!==void 0&&(t.p.n=t.n),t.p=Ve.s,t.n=void 0,Ve.s.n=t,Ve.s=t),t}}function Ze(e,t){this.v=e,this.i=0,this.n=void 0,this.t=void 0,this.l=0,this.W=t==null?void 0:t.watched,this.Z=t==null?void 0:t.unwatched,this.name=t==null?void 0:t.name}Ze.prototype.brand=Le,Ze.prototype.h=function(){return!0},Ze.prototype.S=function(e){var t=this,n=this.t;n!==e&&e.e===void 0&&(e.x=n,this.t=e,n===void 0?He(function(){var e;(e=t.W)==null||e.call(t)}):n.e=e)},Ze.prototype.U=function(e){var t=this;if(this.t!==void 0){var n=e.e,r=e.x;n!==void 0&&(n.x=r,e.e=void 0),r!==void 0&&(r.e=n,e.x=void 0),e===this.t&&(this.t=r,r===void 0&&He(function(){var e;(e=t.Z)==null||e.call(t)}))}},Ze.prototype.subscribe=function(e){var t=this;return st(function(){var n=t.value;He(function(){return e(n)})},{name:`sub`})},Ze.prototype.valueOf=function(){return this.value},Ze.prototype.toString=function(){return this.value+``},Ze.prototype.toJSON=function(){return this.value},Ze.prototype.peek=function(){var e=this;return He(function(){return e.value})},Object.defineProperty(Ze.prototype,"value",{get:function(){var e=Xe(this);return e!==void 0&&(e.i=this.i),this.v},set:function(e){if(e!==this.v){if(Ge>100)throw Error(`Cycle detected`);(function(e){We!==0&&Ge===0&&e.l!==qe&&(e.l=qe,Je={S:e,v:e.v,i:e.i,o:Je})})(this),this.v=e,this.i++,Ye++,We++;try{for(var t=this.t;t!==void 0;t=t.x)t.t.N()}finally{Re()}}}});function I(e,t){return new Ze(e,t)}function Qe(e){for(var t=e.s;t!==void 0;t=t.n)if(t.S.i!==t.i||!t.S.h()||t.S.i!==t.i)return!0;return!1}function $e(e){for(var t=e.s;t!==void 0;t=t.n){var n=t.S.n;if(n!==void 0&&(t.r=n),t.S.n=t,t.i=-1,t.n===void 0){e.s=t;break}}}function et(e){for(var t=e.s,n=void 0;t!==void 0;){var r=t.p;t.i===-1?(t.S.U(t),r!==void 0&&(r.n=t.n),t.n!==void 0&&(t.n.p=r)):n=t,t.S.n=t.r,t.r!==void 0&&(t.r=void 0),t=r}e.s=n}function tt(e,t){Ze.call(this,void 0,t),this.x=e,this.s=void 0,this.g=Ye-1,this.f=4}tt.prototype=new Ze,tt.prototype.h=function(){if(this.f&=-3,1&this.f)return!1;if((36&this.f)==32||(this.f&=-5,this.g===Ye))return!0;if(this.g=Ye,this.f|=1,this.i>0&&!Qe(this))return this.f&=-2,!0;var e=Ve;try{$e(this),Ve=this;var t=this.x();(16&this.f||this.v!==t||this.i===0)&&(this.v=t,this.f&=-17,this.i++)}catch(e){this.v=e,this.f|=16,this.i++}return Ve=e,et(this),this.f&=-2,!0},tt.prototype.S=function(e){if(this.t===void 0){this.f|=36;for(var t=this.s;t!==void 0;t=t.n)t.S.S(t)}Ze.prototype.S.call(this,e)},tt.prototype.U=function(e){if(this.t!==void 0&&(Ze.prototype.U.call(this,e),this.t===void 0)){this.f&=-33;for(var t=this.s;t!==void 0;t=t.n)t.S.U(t)}},tt.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var e=this.t;e!==void 0;e=e.x)e.t.N()}},Object.defineProperty(tt.prototype,"value",{get:function(){if(1&this.f)throw Error(`Cycle detected`);var e=Xe(this);if(this.h(),e!==void 0&&(e.i=this.i),16&this.f)throw this.v;return this.v}});function nt(e,t){return new tt(e,t)}function rt(e){var t=e.m;if(e.m=void 0,typeof t==`function`){We++;var n=Ve;Ve=void 0;try{t()}catch(t){throw e.f&=-2,e.f|=8,it(e),t}finally{Ve=n,Re()}}}function it(e){for(var t=e.s;t!==void 0;t=t.n)t.S.U(t);e.x=void 0,e.s=void 0,rt(e)}function at(e){if(Ve!==this)throw Error(`Out-of-order effect`);et(this),Ve=e,this.f&=-2,8&this.f&&it(this),Re()}function ot(e,t){this.x=e,this.m=void 0,this.s=void 0,this.u=void 0,this.f=32,this.name=t==null?void 0:t.name,Be&&Be.push(this)}ot.prototype.c=function(){var e=this.S();try{if(8&this.f||this.x===void 0)return;var t=this.x();typeof t==`function`&&(this.m=t)}finally{e()}},ot.prototype.S=function(){if(1&this.f)throw Error(`Cycle detected`);this.f|=1,this.f&=-9,rt(this),$e(this),We++;var e=Ve;return Ve=this,at.bind(this,e)},ot.prototype.N=function(){2&this.f||(this.f|=2,this.u=Ue,Ue=this)},ot.prototype.d=function(){this.f|=8,1&this.f||it(this)},ot.prototype.dispose=function(){this.d()};function st(e,t){var n=new ot(e,t);try{n.c()}catch(e){throw n.d(),e}var r=n.d.bind(n);return r[Symbol.dispose]=r,r}var ct,lt,ut,dt=typeof window<`u`&&!!window.__PREACT_SIGNALS_DEVTOOLS__,ft=[];st(function(){ct=this.N})();function pt(e,n){t[e]=n.bind(null,t[e]||function(){})}function mt(e){if(ut){var t=ut;ut=void 0,t()}ut=e&&e.S()}function ht(e){var t=this,n=e.data,i=_t(n);i.name=`ReactiveDom`,i.value=n;var a=Oe(function(){for(var e=t,n=t.__v;n=n.__;)if(n.__c){n.__c.__$f|=4;break}var a=nt(function(){var e=i.value.value;return e===0?0:!0===e?``:e||``}),o=nt(function(){return!Array.isArray(a.value)&&!r(a.value)}),s=st(function(){if(this.N=xt,o.value){var t=a.value;e.__v&&e.__v.__e&&e.__v.__e.nodeType===3&&(e.__v.__e.data=t)}}),c=t.__$u.d;return t.__$u.d=function(){s(),c.call(this)},[o,a]},[]),o=a[0],s=a[1];return o.value?s.peek():s.value}ht.displayName=`ReactiveTextNode`,Object.defineProperties(Ze.prototype,{constructor:{configurable:!0,value:void 0},type:{configurable:!0,value:ht},props:{configurable:!0,get:function(){var e=this;return{data:{get value(){return e.value}}}}},__b:{configurable:!0,value:1}}),pt(`__b`,function(e,t){if(mt(),lt=void 0,typeof t.type==`string`){var n,r=t.props;for(var i in r)if(i!==`children`){var a=r[i];a instanceof Ze&&(n||(t.__np=n={}),n[i]=a,r[i]=a.peek())}}e(t)}),pt(`__r`,function(e,t){if(e(t),t.type!==b){mt();var n,r=t.__c;r&&(r.__$f&=-2,(n=r.__$u)===void 0&&(r.__$u=n=function(e,t){var n;return st(function(){n=this},{name:t}),n.c=e,n}(function(e){return function(){var t;dt&&((t=this.y)==null||t.call(this)),e.__$f|=1,e.setState({})}}(r),typeof t.type==`function`?t.type.displayName||t.type.name:``))),lt=r,mt(n)}}),pt(`__e`,function(e,t,n,r){mt(),lt=void 0,e(t,n,r)}),pt(`diffed`,function(e,t){mt(),lt=void 0;var n;if(typeof t.type==`string`&&(n=t.__e)){var r=t.__np,i=t.props,a=n.U;if(a)for(var o in a){var s=a[o];s===void 0||r&&o in r||(s.d(),a[o]=void 0)}if(r)for(var c in a||(a={},n.U=a),r){var l=a[c],u=r[c];l===void 0?(l=gt(n,c,u,i),a[c]=l):l.o(u,i)}}e(t)});function gt(e,t,n,r){var i=t in e&&e.ownerSVGElement===void 0,a=I(n);return{o:function(e,t){a.value=e,r=t},d:st(function(){this.N=xt;var n=a.value.value;r[t]!==n&&(r[t]=n,i?e[t]=n:n!=null&&(!1!==n||t[4]===`-`)?e.setAttribute(t,n):e.removeAttribute(t))})}}pt(`unmount`,function(e,t){if(typeof t.type==`string`){var n=t.__e;if(n){var r=n.U;if(r)for(var i in n.U=void 0,r){var a=r[i];a&&a.d()}}var o=t.__np;if(o){var s=t.props;for(var c in o)s[c]=o[c]}t.__np=void 0}else{var l=t.__c;if(l){l.__$f|=8;var u=l.__$u;u&&(l.__$u=void 0,u.d())}}e(t)}),pt(`__h`,function(e,t,n,r){r<3&&(t.__$f|=2),e(t,n,r)}),x.prototype.shouldComponentUpdate=function(e,t){if(this.__R)return!0;var n=this.__$u,r=n&&n.s!==void 0;for(var i in t)return!0;if(this.__f||typeof this.u==`boolean`&&!0===this.u){var a=2&this.__$f;if(!(r||a||4&this.__$f)||1&this.__$f)return!0}else if(!(r||4&this.__$f)||3&this.__$f)return!0;for(var o in e)if(o!==`__source`&&e[o]!==this.props[o])return!0;for(var s in this.props)if(!(s in e))return!0;return!1};function _t(e,t){return Oe(function(){return I(e,t)},[])}function vt(e,t){var n=F(e);return n.current=e,lt.__$f|=4,Oe(function(){return nt(function(){return n.current()},t)},[])}var yt=function(e){queueMicrotask(function(){queueMicrotask(e)})};function bt(){ze(function(){for(var e;e=ft.shift();)ct.call(e)})}function xt(){ft.push(this)===1&&(t.requestAnimationFrame||yt)(bt)}var St={37:`left`,38:`up`,39:`right`,40:`down`,13:`ok`,10009:`back`,27:`back`,8:`back`,403:`red`,404:`green`,405:`yellow`,406:`blue`,112:`red`,113:`green`,114:`yellow`,115:`blue`,427:`chUp`,428:`chDown`,33:`chUp`,34:`chDown`,10252:`playPause`,415:`play`,19:`pause`,413:`stop`,412:`rew`,417:`ff`,457:`info`,458:`guide`,10190:`last`,10073:`channelList`,10135:`menu`,93:`menu`,77:`menu`};function Ct(e){return e.keyCode>=48&&e.keyCode<=57?`digit${e.keyCode-48}`:e.keyCode>=96&&e.keyCode<=105?`digit${e.keyCode-96}`:St[e.keyCode]}var wt=`ColorF0Red.ColorF1Green.ColorF2Yellow.ColorF3Blue.ChannelUp.ChannelDown.PreviousChannel.ChannelList.Info.Guide.Tools.MediaPlayPause.MediaPlay.MediaPause.MediaStop.MediaRewind.MediaFastForward.0.1.2.3.4.5.6.7.8.9`.split(`.`),Tt=typeof tizen<`u`;function Et(){if(!Tt)return;let e=new Set(tizen.tvinputdevice.getSupportedKeys().map(e=>e.name)),t=wt.filter(t=>e.has(t));try{tizen.tvinputdevice.registerKeyBatch(t)}catch(e){t.forEach(e=>{try{tizen.tvinputdevice.registerKey(e)}catch(e){}})}}function Dt(){Tt?tizen.application.getCurrentApplication().exit():window.close()}var Ot=new Map,kt=!1;function At(e){return e.getClientRects().length>0}function jt(){let e=document.querySelectorAll(`[data-focus-scope]`);return e.length?e[e.length-1]:document}function Mt(e=jt()){return Array.prototype.filter.call(e.querySelectorAll(`[data-focus]`),At)}function Nt(e){return e?e.closest(`[data-focus-group]`):null}function Pt(e){if(!e)return!1;e.tabIndex<0&&!e.hasAttribute(`tabindex`)&&(e.tabIndex=-1),e.focus();let t=Nt(e);if(t&&(Ot.set(t.dataset.focusGroup,e),Ot.size>200&&Ot.forEach((e,t)=>{e.isConnected||Ot.delete(t)})),e.closest(`[data-focus-noscroll]`))return!0;let n=e;return n.scrollIntoViewIfNeeded?n.scrollIntoViewIfNeeded(!1):e.scrollIntoView({block:`nearest`,inline:`nearest`}),Ft(e),!0}function Ft(e){for(let t=e.parentElement;t&&t!==document.body;t=t.parentElement){if(t.scrollHeight<=t.clientHeight+1||getComputedStyle(t).overflowY===`visible`)continue;let n=parseFloat(getComputedStyle(document.documentElement).fontSize)*1.6,r=e.getBoundingClientRect(),i=t.getBoundingClientRect();r.top-n<i.top?t.scrollTop-=i.top-(r.top-n):r.bottom+n>i.bottom&&(t.scrollTop+=r.bottom+n-i.bottom);return}}function It(e){let t=e.querySelector(`[data-focus-default]`);if(t&&At(t))return t;let n=e instanceof HTMLElement&&e.dataset.focusGroup,r=n?Ot.get(n):void 0;if(r&&r.isConnected&&At(r))return r;let i=e.querySelector(`[data-focus-initial]`);return i&&At(i)?i:Mt(e)[0]}function L(e){return e?Pt(It(e)):!1}function Lt(e,t,n){let r=n===`left`||n===`right`,i=r?e.left+e.width/2:e.top+e.height/2,a=r?t.left+t.width/2:t.top+t.height/2;if(n===`right`||n===`down`?a<=i+1:a>=i-1)return null;let o=Math.max(0,n===`right`?t.left-e.right:n===`left`?e.left-t.right:n===`down`?t.top-e.bottom:e.top-t.bottom),[s,c,l,u]=r?[e.top,e.bottom,t.top,t.bottom]:[e.left,e.right,t.left,t.right],d=Math.max(0,l-c,s-u);return o===0&&d>0?null:[o,d+Math.abs((s+c)/2-(l+u)/2)*.05,d]}function Rt(e){var t;let n=document.activeElement,r=Mt();if(!n||!n.hasAttribute(`data-focus`)||r.indexOf(n)<0)return Pt(It(jt())||r[0]);let i=n.getBoundingClientRect(),a=[];for(let t of r){if(t===n)continue;let r=Lt(i,t.getBoundingClientRect(),e);r&&a.push([t,r[0],r[1],r[2]])}if(e===`left`||e===`right`){let e=a.filter(e=>e[3]===0);e.length&&(a=e)}let o=1/0;for(let e of a)e[1]<o&&(o=e[1]);let s=parseFloat(getComputedStyle(document.documentElement).fontSize),c=Math.min((e===`up`||e===`down`?i.height:i.width)/2,3*s),l,u=1/0;for(let[e,t,n]of a)t<=o+c&&n<u&&(u=n,l=e);if(!l)return!1;let d=Nt(l);return d&&d!==Nt(n)&&!d.contains(n)&&(l=(t=It(d))==null?l:t),Pt(l)}var zt=[];function Bt(e){let t=F(e);t.current=e,P(()=>{let e=(e,n)=>t.current(e,n);return zt.push(e),()=>{let t=zt.indexOf(e);t>=0&&zt.splice(t,1)}},[])}var Vt=600,Ht,Ut=!1;function Wt(e){return!!e&&(e.tagName===`INPUT`||e.tagName===`TEXTAREA`)}var Gt=65376,Kt=65385;function qt(e,t){let n=Ct(e),r=()=>{e.preventDefault();let n=t.closest(`[data-focus]`);t.blur(),Pt(n)};if(e.keyCode===Gt||e.keyCode===Kt||n===`ok`||n===`back`&&e.keyCode!==8)return r(),!0;let i=t.selectionStart===0&&t.selectionEnd===0,a=t.selectionStart===t.value.length;return(n===`up`||n===`down`||n===`left`&&i||n===`right`&&a)&&(r(),Rt(n)),!0}function Jt(e){document.addEventListener(`keydown`,t=>{let n=document.activeElement;if(Wt(n)&&qt(t,n))return;let r=Ct(t);if(!r)return;if(r===`ok`){if(t.preventDefault(),t.repeat||Ht!==void 0||Ut)return;Ht=window.setTimeout(()=>{var e;Ht=void 0,Ut=!0,(e=document.activeElement)==null||e.dispatchEvent(new CustomEvent(`longpress`,{bubbles:!0}))},Vt);return}if(t.preventDefault(),t.repeat){if(kt)return;kt=!0,requestAnimationFrame(()=>{kt=!1})}let i=!1;for(let e=zt.length-1;e>=0;e--){let n=zt[e](r,t);if(n==="default"){i=!0;break}if(n)return}r===`left`||r===`right`||r===`up`||r===`down`?Rt(r):i||e(r,t)}),document.addEventListener(`keyup`,e=>{var t;if(!(Ct(e)!==`ok`||Wt(document.activeElement))){if(e.preventDefault(),Ut)Ut=!1;else if(Ht!==void 0){clearTimeout(Ht),Ht=void 0;for(let t=zt.length-1;t>=0;t--){let n=zt[t](`ok`,e);if(n==="default")break;if(n)return}(t=document.activeElement)==null||t.click()}}})}var Yt={app_name:`UtopyaTV`,loading:`Yükleniyor…`,ok:`Tamam`,cancel:`İptal`,retry:`Tekrar dene`,save:`Kaydet`,delete:`Sil`,back:`Geri`,pin_wrong:`PIN hatalı`,pin_enter:`PIN girin`,pin_new:`Yeni PIN belirleyin`,nav_home:`Ana Sayfa`,nav_live:`Canlı TV`,nav_guide:`Rehber`,nav_movies:`Filmler`,nav_series:`Diziler`,nav_search:`Ara`,nav_recordings:`Kayıtlar`,nav_settings:`Ayarlar`,empty_no_provider:`Henüz bir kaynak eklenmedi.`,add_provider:`Kaynak ekle`,empty_list:`Burada gösterilecek bir şey yok.`,error_network:`Sunucuya bağlanılamadı. İnternet bağlantınızı ve adresi kontrol edin.`,error_timeout:`Sunucu zamanında yanıt vermedi. Lütfen tekrar deneyin.`,error_auth:`Kullanıcı adı veya parola hatalı.`,error_expired:`Aboneliğinizin süresi dolmuş.`,error_not_found:`Adres bulunamadı (404). Adresi kontrol edin.`,error_server:`Sunucu hatası. Daha sonra tekrar deneyin.`,error_parse:`Kaynak okunamadı; geçerli bir M3U/Xtream kaynağı olmayabilir.`,error_empty:`Kaynakta hiç kanal veya içerik bulunamadı.`,error_storage:`Yetersiz depolama alanı.`,error_unknown:`Beklenmeyen bir hata oluştu.`,onb_welcome:`UtopyaTV'ye hoş geldiniz`,onb_choose:`Başlamak için bir kaynak türü seçin. Uygulama içerik sağlamaz; kendi aboneliğinizin bilgilerini girin.`,onb_m3u_url:`M3U adresi`,onb_m3u_url_desc:`İnternetteki bir M3U/M3U8 listesi`,onb_m3u_file:`Yerel M3U dosyası`,onb_m3u_file_desc:`Cihazdaki bir dosyayı seçin`,onb_xtream:`Xtream Codes`,onb_xtream_desc:`Sunucu, kullanıcı adı ve parola`,onb_phone:`Telefondan gir`,onb_phone_desc:`QR kodu okutun, bilgileri telefonda yazın`,onb_name:`Kaynak adı`,onb_name_ph:`Örn. Evdeki liste`,onb_url:`Liste adresi`,onb_server:`Sunucu adresi`,onb_username:`Kullanıcı adı`,onb_password:`Parola`,onb_epg:`EPG (XMLTV) adresi — isteğe bağlı`,onb_user_agent:`User-Agent — isteğe bağlı`,onb_live_format:`Canlı yayın biçimi`,onb_connect:`Bağlan`,onb_validating:`Bilgiler doğrulanıyor…`,onb_file_none:`Bu cihazda dosya seçici yok. Dosyayı "Telefondan gir" seçeneğiyle yükleyebilirsiniz.`,onb_file_chosen:`Seçilen dosya: %1$s`,onb_pick_file:`Dosya seç`,onb_phone_title:`Telefonunuzla QR kodu okutun`,onb_phone_hint:`Telefon ve TV aynı Wi-Fi ağında olmalı. Adres: %1$s`,onb_phone_no_network:`Ağ bağlantısı bulunamadı. TV'nin Wi-Fi veya kabloyla bağlı olduğundan emin olun.`,onb_required:`Lütfen gerekli alanları doldurun.`,sync_title:`Kaynak hazırlanıyor`,sync_connecting:`Bağlanılıyor…`,sync_categories:`Kategoriler alınıyor…`,sync_live:`Canlı kanallar: %1$d`,sync_movies:`Filmler: %1$d`,sync_series:`Diziler: %1$d`,sync_epg:`Yayın akışı: %1$d program`,sync_done:`Hazır!`,sync_failed:`Senkronizasyon başarısız`,sync_continue:`Devam et`,sync_background:`Arka planda devam et`,cat_all:`Tüm Kanallar`,cat_favorites:`Favoriler`,cat_recent:`Son İzlenenler`,cat_locked_hint:`Kilitli`,no_program:`Program bilgisi yok`,now_label:`Şimdi`,next_label:`Sonra`,menu_add_favorite:`Favorilere ekle`,menu_remove_favorite:`Favorilerden çıkar`,menu_hide:`Gizle`,menu_unhide:`Göster`,menu_lock:`PIN ile kilitle`,menu_unlock:`Kilidi kaldır`,menu_pin_top:`En üste sabitle`,menu_unpin:`Sabitlemeyi kaldır`,menu_add_to_group:`Gruba ekle`,menu_remove_from_group:`Gruptan çıkar`,menu_new_group:`Yeni grup oluştur`,menu_delete_group:`Grubu sil`,menu_epg_mapping:`EPG eşleştirmesini düzelt`,menu_play_external:`Harici oynatıcıda aç`,group_name:`Grup adı`,group_default_name:`Grubum %1$d`,pin_needed_first:`Önce Ayarlar → Ebeveyn kontrolü bölümünden bir PIN belirleyin.`,locked_content:`Bu içerik kilitli`,channel_number:`Kanal %1$s`,channel_not_found:`Kanal bulunamadı`,player_error_network:`Yayına bağlanılamadı. Bağlantınızı kontrol edin.`,player_error_auth:`Yayına erişim reddedildi (abonelik veya bağlantı sınırı).`,player_error_not_found:`Yayın bulunamadı; kaynak kapalı olabilir.`,player_error_format:`Yayın biçimi desteklenmiyor.`,player_error_decoder:`Bu cihaz yayını çözemedi. Ayarlardan yazılım çözücüyü deneyin.`,player_error_unknown:`Yayın oynatılamadı.`,player_retrying:`Yeniden deneniyor… (%1$d)`,player_audio:`Ses dili`,player_subtitles:`Altyazı`,player_aspect:`Görüntü oranı`,player_quality:`Video kalitesi`,player_auto:`Otomatik`,player_off:`Kapalı`,aspect_fit:`Sığdır`,aspect_fill:`Doldur`,aspect_zoom:`Yakınlaştır`,player_options:`Seçenekler`,player_no_tracks:`Seçenek yok`,player_live:`CANLI`,player_paused:`Duraklatıldı`,player_go_live:`Canlıya dön`,player_favorite_added:`Favorilere eklendi`,player_favorite_removed:`Favorilerden çıkarıldı`,player_hint_live:`OK: kontroller · ◀ kanallar · ▶ yayın akışı · ▲▼ kanal · MENU seçenekler`,live_empty_category:`Bu kategoride kanal yok.`,live_syncing:`Kanallar yükleniyor, lütfen bekleyin…`,minutes_left:`+%1$d dk`,track_n:`Parça %1$d`,epg_mapping_title:`EPG eşleştirmesi`,epg_mapping_auto:`Otomatik eşleştirme`,epg_mapping_filter:`EPG kanalı ara`,epg_mapping_none:`Bu kaynak için EPG kanalı yok. Önce yayın akışını güncelleyin.`,epg_mapping_current:`Şu anki eşleşme: %1$s`,guide_now:`Şimdi`,guide_prev_day:`Önceki gün`,guide_next_day:`Sonraki gün`,guide_category:`Kategori: %1$s`,guide_watch:`İzle`,guide_watch_archive:`Arşivden izle`,guide_remind:`Hatırlat`,guide_remind_off:`Hatırlatmayı kaldır`,guide_record:`Kaydet`,guide_close:`Kapat`,guide_reminder_set:`Hatırlatıcı kuruldu`,guide_no_data:`Bu kanal için yayın akışı yok`,guide_search:`Ara`,guide_hint:`◀ ▶ zaman · OK ayrıntı · CH± sayfa`,guide_empty:`Yayın akışı henüz yok. Kaynağın EPG adresini kontrol edin veya Ayarlar'dan güncelleyin.`,nav_menu_title:`UtopyaTV`,guide_reminder_removed:`Hatırlatıcı kaldırıldı`,player_guide:`Yayın akışı`,shelf_continue:`İzlemeye devam et`,shelf_recent:`Son eklenenler`,shelf_favorites:`Favorilerim`,shelf_see_all:`Tümünü gör`,vod_play:`Oynat`,vod_resume:`Devam et (%1$s)`,vod_restart:`Baştan başla`,vod_mark_watched:`İzlendi olarak işaretle`,vod_mark_unwatched:`İzlenmedi olarak işaretle`,vod_add_favorite:`Favorilere ekle`,vod_remove_favorite:`Favorilerden çıkar`,vod_cast:`Oyuncular: %1$s`,vod_director:`Yönetmen: %1$s`,vod_minutes:`%1$d dk`,vod_season:`%1$d. Sezon`,vod_episodes_loading:`Bölümler yükleniyor…`,vod_no_episodes:`Bölüm bulunamadı.`,vod_episode_title:`%1$d. Bölüm · %2$s`,vod_empty:`Bu kaynakta film/dizi yok.`,vod_next_episode:`Sonraki bölüm %1$d sn içinde`,vod_play_now:`Şimdi oynat`,vod_episodes:`Bölümler`,vod_hint:`OK oynat/duraklat · ▲ kontroller · ◀▶ sar · ▼ bölümler · MENU seçenekler`,vod_watched:`İzlendi`,locked_unlock:`Kilitli · açmak için OK`,shelf_platforms:`Platformlar`,shelf_genres:`Türler`,browse_all:`Tümü`,sort_label:`Sırala: %1$s`,genre_label:`Tür: %1$s`,sort_added:`Yeni eklenen`,sort_name:`A–Z`,sort_rating:`Puan`,sort_year:`Yıl`,browse_count:`%1$d içerik`,search_hint:`Kanal, film, dizi veya program ara`,search_voice:`Sesli ara`,search_recent:`Son aramalar`,search_clear:`Geçmişi temizle`,search_no_results:`"%1$s" için sonuç bulunamadı.`,search_channels:`Kanallar`,search_movies:`Filmler`,search_series:`Diziler`,search_programs:`Programlar`,search_searching:`Aranıyor…`,home_favorite_channels:`Favori kanallar`,home_recent_channels:`Son izlenen kanallar`,home_new_movies:`Yeni filmler`,home_new_series:`Yeni diziler`,home_source:`Kaynak: %1$s`,home_switch_source:`Kaynak değiştir`,home_empty:`Başlamak için Canlı TV, Filmler veya Diziler bölümüne gidin. Favoriler ve izlemeye devam et burada görünecek.`,home_greeting_morning:`Günaydın`,home_greeting_day:`İyi günler`,home_greeting_evening:`İyi akşamlar`,player_archive:`ARŞİV`,player_archive_hint:`◀▶ 30 sn · ⏪⏩ 2 dk · OK duraklat · MENU → Canlıya dön`,archive_unavailable:`Bu program için arşiv adresi oluşturulamadı.`,guide_restart:`Baştan başlat`,player_timeshift:`ZAMAN KAYDIRMA`,timeshift_starting:`Zaman kaydırma başlatılıyor…`,timeshift_failed:`Zaman kaydırma başlatılamadı; canlı yayına dönüldü.`,timeshift_hint:`◀▶ 30 sn · ⏪⏩ 2 dk · OK oynat/duraklat · MENU → Canlıya dön`,timeshift_behind:`Canlının %1$s gerisinde`,rec_tab_recordings:`Kayıtlar`,rec_tab_scheduled:`Zamanlanmış`,rec_tab_downloads:`İndirmeler`,rec_storage:`Depolama: %1$s · %2$s boş`,rec_storage_internal:`Dahili`,rec_storage_usb:`USB/SD %1$d`,rec_storage_pick:`Depolama konumu`,rec_empty:`Henüz kayıt yok. Rehberde bir programı seçip "Kaydet"e basın ya da izlerken MENU → Şimdi kaydet.`,rec_scheduled_empty:`Zamanlanmış kayıt yok.`,dl_empty:`İndirme yok. Film veya bölüm sayfasından "İndir"e basın.`,rec_status_scheduled:`Zamanlandı`,rec_status_recording:`Kaydediliyor`,rec_status_completed:`Tamamlandı`,rec_status_failed:`Başarısız`,rec_status_cancelled:`İptal edildi`,rec_cancel:`Kaydı durdur / iptal et`,rec_delete:`Kaydı sil`,rec_play:`Oynat`,rec_scheduled_ok:`Kayıt zamanlandı: %1$s`,rec_conflict:`Bu saatte başka bir kayıt var: %1$s. Yine de kaydedilsin mi? (Hesabınız tek bağlantıya izin veriyorsa biri başarısız olabilir.)`,rec_no_space:`Yetersiz depolama alanı (en az 500 MB gerekli).`,rec_invalid:`Bu program kaydedilemez (bitmiş).`,rec_now:`Şimdi kaydet`,rec_now_live:`Canlı kayıt`,rec_badge:`KAYIT`,dl_download:`İndir`,dl_downloading:`İndiriliyor %1$d%%`,dl_paused:`Duraklatıldı %1$d%%`,dl_done:`İndirildi · çevrimdışı oynatılabilir`,dl_failed:`İndirme başarısız · tekrar dene`,dl_pause:`Duraklat`,dl_resume:`Devam et`,dl_delete:`İndirmeyi sil`,dl_queued:`Sırada`,dl_started:`İndirme sıraya eklendi`,set_sources:`Kaynaklar`,set_player:`Oynatıcı`,set_appearance:`Görünüm ve dil`,set_epg:`Yayın akışı (EPG)`,set_parental:`Ebeveyn kontrolü`,set_hidden:`Gizlenenler`,set_storage:`Depolama`,set_backup:`Yedekle / Geri yükle`,set_update:`Güncelleme`,set_about:`Hakkında`,set_on:`Açık`,set_off:`Kapalı`,set_active:`Etkin kaynak`,set_make_active:`Etkin yap`,set_edit:`Düzenle`,set_resync:`Şimdi yenile`,set_delete_source:`Kaynağı sil`,set_delete_confirm:`"%1$s" ve tüm verileri silinsin mi?`,set_add_source:`Yeni kaynak ekle`,set_last_sync:`Son yenileme: %1$s`,set_never:`hiç`,set_account:`Hesap bilgisi`,set_account_status:`Durum: %1$s`,set_account_expiry:`Bitiş: %1$s`,set_account_unlimited:`süresiz`,set_account_connections:`Bağlantı: %1$s / %2$s`,set_account_trial:`Deneme hesabı`,set_account_loading:`Hesap bilgisi alınıyor…`,set_account_none:`Hesap bilgisi yalnızca Xtream kaynaklarında gösterilir.`,set_buffer:`Tampon süresi`,set_buffer_value:`%1$d sn`,set_decoder:`Çözücü modu`,set_decoder_hw:`Donanım (önerilen)`,set_decoder_sw:`Yazılım öncelikli (FFmpeg)`,set_preview:`Canlı TV'de önizleme oynat`,set_auto_next:`Sonraki bölümü otomatik oynat`,set_timeshift:`Duraklatınca zaman kaydırma`,set_fallback:`Kanal açılmazsa önceki kanala dön`,set_audio_lang:`Tercih edilen ses dili`,set_sub_lang:`Tercih edilen altyazı`,set_sub_size:`Altyazı boyutu`,set_lang_default:`Yayının varsayılanı`,set_aspect:`Varsayılan görüntü oranı`,set_start:`Açılış ekranı`,start_home:`Ana sayfa`,start_live:`Canlı TV`,start_guide:`Rehber`,start_movies:`Filmler`,start_series:`Diziler`,start_last:`Son izlenen kanal`,set_numbering:`Kanal numaralandırma`,numbering_global:`Tüm liste`,numbering_category:`Kategori içi`,set_language:`Uygulama dili`,lang_tr:`Türkçe`,lang_en:`English`,lang_system:`Cihaz dili`,set_epg_interval:`Otomatik yenileme aralığı`,set_epg_hours:`%1$d saat`,set_epg_offset:`EPG saat kaydırması`,set_epg_offset_value:`%1$+d dk`,set_epg_refresh:`Yayın akışını şimdi güncelle`,set_epg_urls:`Harici XMLTV adresleri kaynak düzenleme ekranından eklenir.`,set_pin_set:`PIN belirle`,set_pin_change:`PIN değiştir`,set_pin_remove:`PIN kaldır`,set_pin_saved:`PIN kaydedildi`,set_pin_removed:`PIN kaldırıldı`,set_pin_confirm:`PIN'i tekrar girin`,set_pin_mismatch:`PIN'ler eşleşmedi`,set_hide_locked:`Kilitli kategorileri tamamen gizle`,set_adult_lock:`Yetişkin kategorilerini otomatik kilitle`,set_parental_hint:`Kategori kilitlemek için Canlı TV'de kategoriye uzun basın.`,set_hidden_categories:`Gizli kategoriler`,set_hidden_channels:`Gizli kanallar`,set_hidden_none:`Gizlenmiş öğe yok.`,set_unhide:`Göster (gizlemeyi kaldır)`,set_backup_now:`Şimdi yedekle`,set_backup_done:`Yedek kaydedildi: %1$s`,set_backup_warning:`Yedek dosyası kaynak parolalarını içerir; güvenli saklayın.`,set_restore:`Geri yükle`,set_restore_none:`Kayıtlı yedek bulunamadı.`,set_restore_confirm:`Bu yedek geri yüklensin mi? Mevcut kaynaklar ve tercihler değiştirilecek.`,set_restore_done:`Yedek geri yüklendi; kaynaklar yenileniyor.`,set_restore_file:`Dosyadan seç`,set_update_check:`Güncellemeleri denetle`,set_update_none:`Uygulama güncel (%1$s).`,set_update_available:`Yeni sürüm: %1$s`,set_update_install:`İndir ve kur`,set_update_downloading:`İndiriliyor… %1$d%%`,set_update_failed:`Güncelleme denetlenemedi. Bağlantınızı kontrol edin.`,set_update_permission:`Kurulum için "Bilinmeyen uygulamaları yükle" izni gerekiyor.`,set_version:`Sürüm %1$s`,set_about_text:`UtopyaTV yalnızca bir oynatıcıdır; içerik sağlamaz. Kendi aboneliğinizin bilgilerini girerek kullanın.`,set_keys:`Kumanda kısayolları`,set_keys_text:`OK/◀: kanal listesi · ▶: yayın akışı · ▲▼/CH±: kanal · 0-9: kanal no · Kırmızı: favori · Yeşil: ses · Sarı: altyazı · Mavi: görüntü oranı · ⏯: duraklat (zaman kaydırma) · MENU/uzun OK: seçenekler`,player_fallback:`Kanal açılamadı; önceki kanala dönüldü.`,mv_title:`Çoklu ekran`,mv_add:`Ekle`,mv_add_channel:`Kanal ekle`,mv_add_movie:`Film ekle`,mv_layout:`Düzen`,mv_layout_2:`İkili (yan yana)`,mv_layout_4:`Dörtlü (ızgara)`,mv_replace:`Değiştir`,mv_remove:`Kaldır`,mv_fullscreen:`Tam ekranda izle`,mv_empty_slot:`+ OK ile içerik ekle`,mv_hint:`◀▲▼▶ pencere seç (ses odaktakinden gelir) · OK seçenekler · MENU düzen`,mv_warn_decoder:`Bu cihaz aynı anda en fazla %1$d video çözebilir; bazı pencereler oynatılamayabilir.`,mv_warn_connections:`Hesabınız aynı anda %1$d bağlantıya izin veriyor; fazla pencere açılamayabilir.`,mv_open:`Çoklu ekranda aç`,mv_pick_channel:`Kanal seç`,mv_pick_movie:`Film seç`,ext_none:`Harici oynatıcı bulunamadı. VLC veya MX Player'ı Play Store'dan kurabilirsiniz.`,ext_choose:`Oynatıcı seçin`,player_speed:`Oynatma hızı`,player_sleep:`Uyku zamanlayıcısı`,sleep_off:`Kapalı`,sleep_minutes:`%1$d dakika sonra`,sleep_triggered:`Uyku zamanlayıcısı oynatmayı durdurdu.`,sleep_set:`Uyku zamanlayıcısı: %1$d dk`,exit_title:`Çıkış`,exit_message:`UtopyaTV'den çıkmak istiyor musunuz?`,player_info:`Yayın bilgisi`,info_video:`Görüntü: %1$s`,info_audio:`Ses: %1$s`,info_none:`Bilgi yok`,info_buffer:`Tampon: %1$s`,vod_prev_ep:`Önceki bölüm`,vod_next_ep:`Sonraki bölüm`,shelf_similar:`Benzer içerikler`,start_first_fav:`İlk favori kanal`,numbering_hidden:`Gizli`,set_accent:`Tema rengi`,accent_blue:`Mavi`,accent_orange:`Turuncu`,accent_green:`Yeşil`,accent_purple:`Mor`,accent_red:`Kırmızı`,set_color_keys:`Renkli tuşlar`,key_red:`Kırmızı tuş`,key_green:`Yeşil tuş`,key_yellow:`Sarı tuş`,key_blue:`Mavi tuş`,act_favorite:`Favori ekle/çıkar`,act_audio:`Ses dili`,act_subtitles:`Altyazı`,act_aspect:`Görüntü oranı`,act_guide:`Yayın akışı`,act_channels:`Kanal listesi`,act_record:`Şimdi kaydet`,act_multiview:`Çoklu ekran`,act_info:`Bilgi bandı`,act_none:`Hiçbiri`,set_remember_tracks:`Seçtiğim ses/altyazı dilini hatırla`,menu_move_up:`Yukarı taşı`,menu_move_down:`Aşağı taşı`,set_test_connection:`Bağlantıyı test et`,set_connection_ok:`Bağlantı başarılı: kaynak çevrimiçi.`,rec_once:`Bir kez kaydet`,rec_daily:`Her gün kaydet`,rec_weekly:`Her hafta kaydet`,rec_repeat_daily:`Her gün`,rec_repeat_weekly:`Her hafta`,onb_stalker:`Stalker Portal`,onb_stalker_desc:`MAG portal adresi ve MAC`,onb_portal:`Portal adresi`,onb_mac:`MAC adresi`,tips_title:`Kumanda kısayolları`,tips_ok:`Anladım`,tip_ok:`OK: kanalı aç · Kanaldayken OK: kanal listesi`,tip_long:`OK'ye uzun bas: favori, gizle, kilitle, gruba ekle, çoklu ekran`,tip_numbers:`Rakam tuşları: kanal numarasına atla`,tip_updown:`Yayında ▲▼ veya CH+/CH−: kanal değiştir`,tip_right:`Yayında ►: yayın akışı · MENU: ses, altyazı, görüntü`,tip_colors:`Renkli tuşlar: favori / ses / altyazı / oran (Ayarlar'dan değişir)`,tip_back:`GERİ: menüye dön · Menüde GERİ: çıkış onayı`,onb_tagline:`Kendi IPTV aboneliğiniz için hızlı ve modern oynatıcı`,onb_feat_live:`Canlı TV ve yayın akışı (EPG), arşiv ve zaman kaydırma`,onb_feat_vod:`Film ve diziler; Netflix, HBO Max, Disney+ gibi platform grupları`,onb_feat_tools:`Kayıt, indirme ve aynı anda iki yayın (çoklu ekran)`,onb_no_content:`Uygulama içerik sağlamaz; kendi aboneliğinizin bilgilerini girersiniz.`,onb_how:`Nasıl bağlanmak istersiniz?`,onb_badge_common:`En yaygın`,onb_badge_easy:`Klavyesiz`,onb_form_qr_title:`Telefonla doldurun`,onb_form_qr_hint:`Uzun adresleri kumandayla yazmak yerine QR kodu okutun. Telefon ve TV aynı Wi-Fi ağında olmalı.`,onb_phone_step1:`Telefon kamerasıyla QR kodu okutun`,onb_phone_step2:`Açılan sayfada bilgilerinizi yazın`,onb_phone_step3:`Gönder'e basın, TV kendiliğinden bağlanır`,onb_hint_m3u:`Sağlayıcınızın verdiği M3U/M3U8 bağlantısını yazın. Birden çok listeyi birleştirmek için adresleri boşlukla ayırın.`,onb_hint_xtream:`Sağlayıcınızın verdiği sunucu adresi, kullanıcı adı ve parolayı yazın.`,onb_hint_stalker:`Portal adresini ve cihazınıza tanımlı MAC adresini yazın.`,onb_hint_file:`Cihazdaki bir .m3u dosyasını seçin.`,onb_optional:`İsteğe bağlı ayarlar`,live_categories:`Kategoriler`,live_channel_count:`%1$d kanal`,live_preview:`Kanal önizleme`,pc_channels:`Kanallar`,pc_picture:`Görüntü`,pc_favorite:`Favori`,pc_record:`Kaydet`,pc_more:`Diğer`,pc_info:`Bilgi`,pc_play:`Oynat`,pc_pause:`Duraklat`,pc_prev:`Önceki`,pc_next:`Sonraki`,pc_speed:`Hız`,mv_add_series:`Dizi ekle`,group_by:`Grupla: %1$s`,group_category:`Kategori`,group_country:`Ülke`,group_genre:`Tür`,group_platform:`Platform`,genre_adult:`Yetişkin`,genre_kids:`Çocuk`,genre_sports:`Spor`,genre_news:`Haber`,genre_docs:`Belgesel`,genre_music:`Müzik ve radyo`,genre_movies:`Film ve dizi`,genre_religion:`Dini`,genre_local:`Yerel`,genre_national:`Ulusal`,genre_uhd:`4K / UHD`,genre_other:`Diğer`,onb_jellyfin:`Jellyfin`,onb_jellyfin_desc:`Kendi medya sunucunuz`,onb_hint_jellyfin:`Jellyfin sunucu adresini (ör. http://192.168.1.10:8096), kullanıcı adınızı ve parolanızı yazın.`,sub_load:`Altyazı dosyası yükle (SRT)`,sub_offset:`Altyazı zamanlaması`,sub_loaded:`Altyazı yüklendi`,sub_failed:`Altyazı dosyası okunamadı`,sub_no_picker:`Bu cihazda dosya seçici yok`,set_sub_color:`Altyazı rengi`,set_sub_bg:`Altyazı arka planı`,color_white:`Beyaz`,color_yellow:`Sarı`,color_cyan:`Camgöbeği`,set_max_quality:`En yüksek video kalitesi`,quality_auto:`Otomatik`,vod_versions:`Sürümler (%1$d)`,vod_version_standard:`Standart`,set_theme:`Tema`,theme_navy:`Lacivert`,theme_amoled:`AMOLED siyah`,theme_graphite:`Grafit`,theme_forest:`Orman`,theme_wine:`Bordo`,set_home_shelves:`Ana sayfa rafları`,set_move_hint:`OK: aç/kapat · Uzun bas: yukarı taşı`,set_filter_words:`Kategori filtre kelimeleri`,set_filter_words_hint:`Kategori adlarından atılır, virgülle ayırın (ör. [RAW], FHD, VIP)`,set_none:`Yok`,set_rec_folder:`Kayıt klasörü`,set_rec_folder_default:`Uygulama deposu (yukarıdaki seçim)`,set_rec_folder_hint:`Biten kayıtlar seçilen klasöre (USB, ağ klasörü…) taşınır. Uzun bas: varsayılana dön.`,nav_extensions:`Eklentiler`,ext_add:`Eklenti ekle`,ext_url:`Eklenti adresi (manifest.json)`,ext_empty:`Henüz eklenti yok. Stremio uyumlu bir eklentinin manifest adresini ekleyin.`,ext_note:`Uygulama içerik sağlamaz; yalnızca kullanma hakkınız olan eklentileri ekleyin.`,ext_remove:`Eklentiyi kaldır`,ext_failed:`Eklenti eklenemedi: adres geçersiz ya da erişilemiyor.`,ext_find_sources:`Kaynakları bul`,ext_sources:`Kaynaklar`,ext_no_sources:`Oynatılabilir kaynak bulunamadı (torrent kaynakları desteklenmez).`,ext_installed:`Kurulu eklentiler`,ext_specials:`Özel bölümler`,sub_url_title:`Altyazı adresi (SRT)`,sub_url_hint:`Bu cihazda dosya seçici yok. Altyazının internet adresini girin.`,brand_short:`UtopyaTV`,os_account:`OpenSubtitles hesabı`,os_account_none:`Ayarlanmadı`,os_account_set:`Ayarlandı`,os_account_hint:`opensubtitles.com'dan ücretsiz API anahtarı alın. Kullanıcı adı/parola isteğe bağlıdır; girilirse günlük indirme hakkı artar.`,os_api_key:`API anahtarı`,os_username:`Kullanıcı adı (isteğe bağlı)`,os_password:`Parola (isteğe bağlı)`,set_auto_subs:`Altyazıyı otomatik bul (OpenSubtitles)`,set_auto_subs_hint:`Yayında seçili dilde altyazı yoksa doğru eşleşen altyazı getirilir`,sub_find:`Altyazı bul (OpenSubtitles)`,sub_searching:`Altyazı aranıyor…`,sub_found:`Altyazı yüklendi: %1$s`,sub_not_found:`Bu içerik için doğru eşleşen altyazı bulunamadı`,sub_no_key:`Ayarlar → Oynatıcı'dan OpenSubtitles API anahtarını girin`,sub_limit:`OpenSubtitles günlük indirme hakkı doldu`,home_hero:`Öne çıkan`,home_up_next:`Sıradaki bölüm`,home_tonight:`Bu akşam maçlar`,home_schedule:`Hatırlatıcılar ve kayıtlar`,home_top_movies:`En yüksek puanlı filmler`,home_top_series:`En yüksek puanlı diziler`,home_top_rated:`En yüksek puanlılar`,home_new_episodes:`Favori dizilerde yeni bölüm`,home_new_episode_badge:`YENİ BÖLÜM`,home_dismiss_new:`Yeni bölüm bildirimini kapat`,home_for_you:`Bugün ne izlesem?`,home_for_you_genres:`Bugün ne izlesem? · %1$s`,home_starting_soon:`Birazdan başlıyor`,home_reminder_badge:`HATIRLATICI`,home_open_channel:`Kanalı aç`,home_genres:`Türlere göz at`,home_edit:`Ana sayfayı düzenle`,home_edit_hint:`OK: taşı · ▲▼: sırayı değiştir · OK: bırak · ▶: aç/kapat`,home_edit_moving:`Taşınıyor`,home_edit_reset:`Varsayılana dön`,home_edit_hidden:`Kapalı raflar`,home_kind_movie:`FİLM`,home_kind_series:`DİZİ`,browse_movie_count:`%1$d film`,browse_series_count:`%1$d dizi`,password_show:`Parolayı göster`,password_hide:`Parolayı gizle`,home_details:`Detaylar`,home_live_now:`ŞİMDİ`,home_rec:`KAYIT`,menu_remove_continue:`İzlemeye devam et'ten kaldır`,menu_remove_up_next:`Sıradaki bölümden kaldır (izleme geçmişi silinir)`,menu_remove_recent:`Son izlenenlerden kaldır`,menu_open:`Aç`,os_phone_title:`Telefondan girin`,os_phone_hint:`QR kodu okutun, anahtarı telefonda yapıştırıp Gönder'e basın. Telefon ve TV aynı Wi-Fi ağında olmalı.`,tz_coming_soon:`Bu bölüm sonraki fazda gelecek.`,tz_feat_tools:`Altyazı arama, arşivden izleme ve ebeveyn kontrolü`,tz_m3u_file_desc:`TV'ye takılı USB bellekteki bir dosya`,tz_hint_file:`TV'ye takılı USB bellekteki bir .m3u dosyasını seçin.`,tz_usb_title:`USB bellekteki listeler`,tz_usb_empty:`Takılı USB bellekte .m3u dosyası bulunamadı. Belleği takıp yeniden deneyin.`,tz_reminder_title:`%1$s başlıyor`,tz_reminder_text:`%1$s kanalında`,tz_keys_text:`OK/◀: kanal listesi · ▶: yayın akışı · ▲▼/CH±: kanal · 0-9: kanal no · Kırmızı: favori · Yeşil: ses · Sarı: altyazı · Mavi: görüntü oranı · ⏯: duraklat · TOOLS/uzun OK: seçenekler`,tz_sub_offset_value:`%1$s sn`,tz_archive_hint:`◀▶ 30 sn · ⏪⏩ 2 dk · OK duraklat · ■ ya da uzun OK → Canlıya dön`,tz_remind_daily:`Her gün hatırlat`,tz_remind_weekly:`Her hafta hatırlat`,tz_rec_note:`Tizen'de yayın kaydı yapılamaz. Zamanlanan programlar başlamadan önce hatırlatılır, oradan kanala geçebilirsiniz.`,tz_onb_help_title:`İpuçları`,tz_onb_help_keyboard:`Uzun adresleri telefondaki SmartThings uygulamasının klavyesiyle yazabilirsiniz (TV ile aynı Wi-Fi'da).`,tz_onb_help_server:`Sunucu adresini sağlayıcınız verir; genellikle http://alanadi:8080 biçimindedir. Sondaki / gerekmez.`,tz_onb_help_creds:`Kullanıcı adı ve parola büyük/küçük harfe duyarlıdır. Parolayı kontrol etmek için yanındaki göz düğmesini kullanın.`,tz_onb_help_m3u:`Birden çok listeyi birleştirmek için adresleri boşlukla ayırın.`,tz_onb_help_file:`Listeyi (.m3u) USB belleğe kopyalayıp TV'ye takın, sonra "Dosya seç"e basın.`,tz_onb_help_epg:`Yayın akışı adresi isteğe bağlıdır; boş bırakırsanız sağlayıcının kendi akışı kullanılır.`,tz_onb_help_privacy:`Bilgileriniz yalnızca bu cihazda saklanır.`},Xt={app_name:`UtopyaTV`,loading:`Loading…`,ok:`OK`,cancel:`Cancel`,retry:`Retry`,save:`Save`,delete:`Delete`,back:`Back`,pin_wrong:`Wrong PIN`,pin_enter:`Enter PIN`,pin_new:`Set a new PIN`,nav_home:`Home`,nav_live:`Live TV`,nav_guide:`Guide`,nav_movies:`Movies`,nav_series:`Series`,nav_search:`Search`,nav_recordings:`Recordings`,nav_settings:`Settings`,empty_no_provider:`No source has been added yet.`,add_provider:`Add source`,empty_list:`Nothing to show here.`,error_network:`Could not reach the server. Check your internet connection and the address.`,error_timeout:`The server did not respond in time. Please try again.`,error_auth:`Wrong username or password.`,error_expired:`Your subscription has expired.`,error_not_found:`Address not found (404). Check the URL.`,error_server:`Server error. Try again later.`,error_parse:`Could not read the source; it may not be a valid M3U/Xtream source.`,error_empty:`No channels or content were found in the source.`,error_storage:`Not enough storage space.`,error_unknown:`An unexpected error occurred.`,onb_welcome:`Welcome to UtopyaTV`,onb_choose:`Choose a source type to get started. The app provides no content; enter your own subscription details.`,onb_m3u_url:`M3U URL`,onb_m3u_url_desc:`An M3U/M3U8 playlist on the internet`,onb_m3u_file:`Local M3U file`,onb_m3u_file_desc:`Pick a file on this device`,onb_xtream:`Xtream Codes`,onb_xtream_desc:`Server, username and password`,onb_phone:`Enter from phone`,onb_phone_desc:`Scan the QR code and type on your phone`,onb_name:`Source name`,onb_name_ph:`e.g. Home list`,onb_url:`Playlist URL`,onb_server:`Server URL`,onb_username:`Username`,onb_password:`Password`,onb_epg:`EPG (XMLTV) URL — optional`,onb_user_agent:`User-Agent — optional`,onb_live_format:`Live stream format`,onb_connect:`Connect`,onb_validating:`Validating details…`,onb_file_none:`No file picker on this device. You can upload the file with "Enter from phone".`,onb_file_chosen:`Selected file: %1$s`,onb_pick_file:`Choose file`,onb_phone_title:`Scan the QR code with your phone`,onb_phone_hint:`Phone and TV must be on the same Wi-Fi. Address: %1$s`,onb_phone_no_network:`No network found. Make sure the TV is connected via Wi-Fi or cable.`,onb_required:`Please fill in the required fields.`,sync_title:`Preparing source`,sync_connecting:`Connecting…`,sync_categories:`Fetching categories…`,sync_live:`Live channels: %1$d`,sync_movies:`Movies: %1$d`,sync_series:`Series: %1$d`,sync_epg:`Program guide: %1$d programs`,sync_done:`Ready!`,sync_failed:`Sync failed`,sync_continue:`Continue`,sync_background:`Continue in background`,cat_all:`All Channels`,cat_favorites:`Favorites`,cat_recent:`Recently Watched`,cat_locked_hint:`Locked`,no_program:`No program info`,now_label:`Now`,next_label:`Next`,menu_add_favorite:`Add to favorites`,menu_remove_favorite:`Remove from favorites`,menu_hide:`Hide`,menu_unhide:`Show`,menu_lock:`Lock with PIN`,menu_unlock:`Remove lock`,menu_pin_top:`Pin to top`,menu_unpin:`Unpin`,menu_add_to_group:`Add to group`,menu_remove_from_group:`Remove from group`,menu_new_group:`Create new group`,menu_delete_group:`Delete group`,menu_epg_mapping:`Fix EPG mapping`,menu_play_external:`Open in external player`,group_name:`Group name`,group_default_name:`My group %1$d`,pin_needed_first:`First set a PIN in Settings → Parental control.`,locked_content:`This content is locked`,channel_number:`Channel %1$s`,channel_not_found:`Channel not found`,player_error_network:`Could not connect to the stream. Check your connection.`,player_error_auth:`Access to the stream was denied (subscription or connection limit).`,player_error_not_found:`Stream not found; the source may be offline.`,player_error_format:`The stream format is not supported.`,player_error_decoder:`This device could not decode the stream. Try the software decoder in Settings.`,player_error_unknown:`The stream could not be played.`,player_retrying:`Retrying… (%1$d)`,player_audio:`Audio language`,player_subtitles:`Subtitles`,player_aspect:`Aspect ratio`,player_quality:`Video quality`,player_auto:`Auto`,player_off:`Off`,aspect_fit:`Fit`,aspect_fill:`Fill`,aspect_zoom:`Zoom`,player_options:`Options`,player_no_tracks:`No options`,player_live:`LIVE`,player_paused:`Paused`,player_go_live:`Back to live`,player_favorite_added:`Added to favorites`,player_favorite_removed:`Removed from favorites`,player_hint_live:`OK: controls · ◀ channels · ▶ guide · ▲▼ channel · MENU options`,live_empty_category:`No channels in this category.`,live_syncing:`Loading channels, please wait…`,minutes_left:`+%1$d min`,track_n:`Track %1$d`,epg_mapping_title:`EPG mapping`,epg_mapping_auto:`Automatic mapping`,epg_mapping_filter:`Search EPG channels`,epg_mapping_none:`No EPG channels for this source. Update the program guide first.`,epg_mapping_current:`Current mapping: %1$s`,guide_now:`Now`,guide_prev_day:`Previous day`,guide_next_day:`Next day`,guide_category:`Category: %1$s`,guide_watch:`Watch`,guide_watch_archive:`Watch from archive`,guide_remind:`Remind me`,guide_remind_off:`Cancel reminder`,guide_record:`Record`,guide_close:`Close`,guide_reminder_set:`Reminder set`,guide_no_data:`No guide data for this channel`,guide_search:`Search`,guide_hint:`◀ ▶ time · OK details · CH± page`,guide_empty:`No program guide yet. Check the source EPG URL or refresh it in Settings.`,nav_menu_title:`UtopyaTV`,guide_reminder_removed:`Reminder removed`,player_guide:`Program guide`,shelf_continue:`Continue watching`,shelf_recent:`Recently added`,shelf_favorites:`My favorites`,shelf_see_all:`See all`,vod_play:`Play`,vod_resume:`Resume (%1$s)`,vod_restart:`Start over`,vod_mark_watched:`Mark as watched`,vod_mark_unwatched:`Mark as unwatched`,vod_add_favorite:`Add to favorites`,vod_remove_favorite:`Remove from favorites`,vod_cast:`Cast: %1$s`,vod_director:`Director: %1$s`,vod_minutes:`%1$d min`,vod_season:`Season %1$d`,vod_episodes_loading:`Loading episodes…`,vod_no_episodes:`No episodes found.`,vod_episode_title:`Episode %1$d · %2$s`,vod_empty:`No movies/series in this source.`,vod_next_episode:`Next episode in %1$d s`,vod_play_now:`Play now`,vod_episodes:`Episodes`,vod_hint:`OK play/pause · ▲ controls · ◀▶ seek · ▼ episodes · MENU options`,vod_watched:`Watched`,locked_unlock:`Locked · press OK to unlock`,shelf_platforms:`Platforms`,shelf_genres:`Genres`,browse_all:`All`,sort_label:`Sort: %1$s`,genre_label:`Genre: %1$s`,sort_added:`Recently added`,sort_name:`A–Z`,sort_rating:`Rating`,sort_year:`Year`,browse_count:`%1$d titles`,search_hint:`Search channels, movies, series or programs`,search_voice:`Voice search`,search_recent:`Recent searches`,search_clear:`Clear history`,search_no_results:`No results for "%1$s".`,search_channels:`Channels`,search_movies:`Movies`,search_series:`Series`,search_programs:`Programs`,search_searching:`Searching…`,home_favorite_channels:`Favorite channels`,home_recent_channels:`Recently watched channels`,home_new_movies:`New movies`,home_new_series:`New series`,home_source:`Source: %1$s`,home_switch_source:`Switch source`,home_empty:`Go to Live TV, Movies or Series to get started. Favorites and continue watching will appear here.`,home_greeting_morning:`Good morning`,home_greeting_day:`Good afternoon`,home_greeting_evening:`Good evening`,player_archive:`ARCHIVE`,player_archive_hint:`◀▶ 30 s · ⏪⏩ 2 min · OK pause · MENU → Back to live`,archive_unavailable:`Could not build an archive URL for this program.`,guide_restart:`Start over`,player_timeshift:`TIMESHIFT`,timeshift_starting:`Starting timeshift…`,timeshift_failed:`Timeshift could not start; back to live.`,timeshift_hint:`◀▶ 30 s · ⏪⏩ 2 min · OK play/pause · MENU → Back to live`,timeshift_behind:`%1$s behind live`,rec_tab_recordings:`Recordings`,rec_tab_scheduled:`Scheduled`,rec_tab_downloads:`Downloads`,rec_storage:`Storage: %1$s · %2$s free`,rec_storage_internal:`Internal`,rec_storage_usb:`USB/SD %1$d`,rec_storage_pick:`Storage location`,rec_empty:`No recordings yet. Pick a program in the guide and press "Record", or use MENU → Record now while watching.`,rec_scheduled_empty:`No scheduled recordings.`,dl_empty:`No downloads. Press "Download" on a movie or episode page.`,rec_status_scheduled:`Scheduled`,rec_status_recording:`Recording`,rec_status_completed:`Completed`,rec_status_failed:`Failed`,rec_status_cancelled:`Cancelled`,rec_cancel:`Stop / cancel recording`,rec_delete:`Delete recording`,rec_play:`Play`,rec_scheduled_ok:`Recording scheduled: %1$s`,rec_conflict:`Another recording overlaps: %1$s. Record anyway? (If your account allows one connection, one may fail.)`,rec_no_space:`Not enough storage (at least 500 MB required).`,rec_invalid:`This program cannot be recorded (already ended).`,rec_now:`Record now`,rec_now_live:`Live recording`,rec_badge:`REC`,dl_download:`Download`,dl_downloading:`Downloading %1$d%%`,dl_paused:`Paused %1$d%%`,dl_done:`Downloaded · plays offline`,dl_failed:`Download failed · retry`,dl_pause:`Pause`,dl_resume:`Resume`,dl_delete:`Delete download`,dl_queued:`Queued`,dl_started:`Download queued`,set_sources:`Sources`,set_player:`Player`,set_appearance:`Appearance & language`,set_epg:`Program guide (EPG)`,set_parental:`Parental control`,set_hidden:`Hidden items`,set_storage:`Storage`,set_backup:`Backup / Restore`,set_update:`Update`,set_about:`About`,set_on:`On`,set_off:`Off`,set_active:`Active source`,set_make_active:`Make active`,set_edit:`Edit`,set_resync:`Refresh now`,set_delete_source:`Delete source`,set_delete_confirm:`Delete "%1$s" and all its data?`,set_add_source:`Add new source`,set_last_sync:`Last refresh: %1$s`,set_never:`never`,set_account:`Account info`,set_account_status:`Status: %1$s`,set_account_expiry:`Expires: %1$s`,set_account_unlimited:`unlimited`,set_account_connections:`Connections: %1$s / %2$s`,set_account_trial:`Trial account`,set_account_loading:`Fetching account info…`,set_account_none:`Account info is only available for Xtream sources.`,set_buffer:`Buffer length`,set_buffer_value:`%1$d s`,set_decoder:`Decoder mode`,set_decoder_hw:`Hardware (recommended)`,set_decoder_sw:`Prefer software (FFmpeg)`,set_preview:`Play preview in Live TV`,set_auto_next:`Autoplay next episode`,set_timeshift:`Timeshift on pause`,set_fallback:`Return to previous channel on failure`,set_audio_lang:`Preferred audio language`,set_sub_lang:`Preferred subtitles`,set_sub_size:`Subtitle size`,set_lang_default:`Stream default`,set_aspect:`Default aspect ratio`,set_start:`Startup screen`,start_home:`Home`,start_live:`Live TV`,start_guide:`Guide`,start_movies:`Movies`,start_series:`Series`,start_last:`Last watched channel`,set_numbering:`Channel numbering`,numbering_global:`Whole list`,numbering_category:`Within category`,set_language:`App language`,lang_tr:`Turkish`,lang_en:`English`,lang_system:`Device language`,set_epg_interval:`Auto refresh interval`,set_epg_hours:`%1$d hours`,set_epg_offset:`EPG time offset`,set_epg_offset_value:`%1$+d min`,set_epg_refresh:`Update program guide now`,set_epg_urls:`External XMLTV URLs are added in the source edit screen.`,set_pin_set:`Set PIN`,set_pin_change:`Change PIN`,set_pin_remove:`Remove PIN`,set_pin_saved:`PIN saved`,set_pin_removed:`PIN removed`,set_pin_confirm:`Re-enter PIN`,set_pin_mismatch:`PINs did not match`,set_hide_locked:`Hide locked categories entirely`,set_adult_lock:`Auto-lock adult categories`,set_parental_hint:`Long-press a category in Live TV to lock it.`,set_hidden_categories:`Hidden categories`,set_hidden_channels:`Hidden channels`,set_hidden_none:`No hidden items.`,set_unhide:`Show (unhide)`,set_backup_now:`Back up now`,set_backup_done:`Backup saved: %1$s`,set_backup_warning:`The backup file contains source passwords; keep it safe.`,set_restore:`Restore`,set_restore_none:`No saved backup found.`,set_restore_confirm:`Restore this backup? Current sources and preferences will be replaced.`,set_restore_done:`Backup restored; sources are refreshing.`,set_restore_file:`Choose file`,set_update_check:`Check for updates`,set_update_none:`App is up to date (%1$s).`,set_update_available:`New version: %1$s`,set_update_install:`Download & install`,set_update_downloading:`Downloading… %1$d%%`,set_update_failed:`Could not check for updates. Check your connection.`,set_update_permission:`Installing requires the "Install unknown apps" permission.`,set_version:`Version %1$s`,set_about_text:`UtopyaTV is a player only; it provides no content. Use it with your own subscription details.`,set_keys:`Remote shortcuts`,set_keys_text:`OK/◀: channel list · ▶: guide · ▲▼/CH±: channel · 0-9: channel no · Red: favorite · Green: audio · Yellow: subtitles · Blue: aspect · ⏯: pause (timeshift) · MENU/long OK: options`,player_fallback:`Channel failed; returned to the previous channel.`,mv_title:`Multi-view`,mv_add:`Add`,mv_add_channel:`Add channel`,mv_add_movie:`Add movie`,mv_layout:`Layout`,mv_layout_2:`Two (side by side)`,mv_layout_4:`Four (grid)`,mv_replace:`Replace`,mv_remove:`Remove`,mv_fullscreen:`Watch full screen`,mv_empty_slot:`+ Press OK to add content`,mv_hint:`◀▲▼▶ select window (audio follows focus) · OK options · MENU layout`,mv_warn_decoder:`This device can decode at most %1$d videos at once; some windows may not play.`,mv_warn_connections:`Your account allows %1$d simultaneous connections; extra windows may fail.`,mv_open:`Open in multi-view`,mv_pick_channel:`Pick a channel`,mv_pick_movie:`Pick a movie`,ext_none:`No external player found. You can install VLC or MX Player from the Play Store.`,ext_choose:`Choose a player`,player_speed:`Playback speed`,player_sleep:`Sleep timer`,sleep_off:`Off`,sleep_minutes:`After %1$d minutes`,sleep_triggered:`The sleep timer stopped playback.`,sleep_set:`Sleep timer: %1$d min`,exit_title:`Exit`,exit_message:`Do you want to exit UtopyaTV?`,player_info:`Stream info`,info_video:`Video: %1$s`,info_audio:`Audio: %1$s`,info_none:`No info`,info_buffer:`Buffer: %1$s`,vod_prev_ep:`Previous episode`,vod_next_ep:`Next episode`,shelf_similar:`More like this`,start_first_fav:`First favorite channel`,numbering_hidden:`Hidden`,set_accent:`Theme color`,accent_blue:`Blue`,accent_orange:`Orange`,accent_green:`Green`,accent_purple:`Purple`,accent_red:`Red`,set_color_keys:`Color keys`,key_red:`Red key`,key_green:`Green key`,key_yellow:`Yellow key`,key_blue:`Blue key`,act_favorite:`Toggle favorite`,act_audio:`Audio language`,act_subtitles:`Subtitles`,act_aspect:`Aspect ratio`,act_guide:`Program guide`,act_channels:`Channel list`,act_record:`Record now`,act_multiview:`Multi-view`,act_info:`Info banner`,act_none:`None`,set_remember_tracks:`Remember my audio/subtitle choice`,menu_move_up:`Move up`,menu_move_down:`Move down`,set_test_connection:`Test connection`,set_connection_ok:`Connection OK: the source is online.`,rec_once:`Record once`,rec_daily:`Record daily`,rec_weekly:`Record weekly`,rec_repeat_daily:`Daily`,rec_repeat_weekly:`Weekly`,onb_stalker:`Stalker Portal`,onb_stalker_desc:`MAG portal URL and MAC`,onb_portal:`Portal URL`,onb_mac:`MAC address`,tips_title:`Remote shortcuts`,tips_ok:`Got it`,tip_ok:`OK: open channel · OK while watching: channel list`,tip_long:`Long-press OK: favorite, hide, lock, add to group, multi-view`,tip_numbers:`Number keys: jump to channel number`,tip_updown:`While watching ▲▼ or CH+/CH−: change channel`,tip_right:`While watching ►: guide · MENU: audio, subtitles, picture`,tip_colors:`Color keys: favorite / audio / subtitles / aspect (change in Settings)`,tip_back:`BACK: return to menu · BACK in menu: confirm exit`,onb_tagline:`A fast, modern player for your own IPTV subscription`,onb_feat_live:`Live TV with program guide, catch-up and timeshift`,onb_feat_vod:`Movies and series grouped by Netflix, HBO Max, Disney+ and more`,onb_feat_tools:`Recording, downloads and two streams at once (multi-view)`,onb_no_content:`The app provides no content; you enter your own subscription details.`,onb_how:`How would you like to connect?`,onb_badge_common:`Most common`,onb_badge_easy:`No typing`,onb_form_qr_title:`Fill in from your phone`,onb_form_qr_hint:`Scan the QR code instead of typing long addresses with the remote. Phone and TV must be on the same Wi-Fi.`,onb_phone_step1:`Scan the QR code with your phone camera`,onb_phone_step2:`Enter your details on the page that opens`,onb_phone_step3:`Tap Send and the TV connects automatically`,onb_hint_m3u:`Enter the M3U/M3U8 link from your provider. To merge several lists, separate the addresses with spaces.`,onb_hint_xtream:`Enter the server address, username and password from your provider.`,onb_hint_stalker:`Enter the portal address and the MAC address registered for your device.`,onb_hint_file:`Choose an .m3u file on this device.`,onb_optional:`Optional settings`,live_categories:`Categories`,live_channel_count:`%1$d channels`,live_preview:`Channel preview`,pc_channels:`Channels`,pc_picture:`Picture`,pc_favorite:`Favorite`,pc_record:`Record`,pc_more:`More`,pc_info:`Info`,pc_play:`Play`,pc_pause:`Pause`,pc_prev:`Previous`,pc_next:`Next`,pc_speed:`Speed`,mv_add_series:`Add series`,group_by:`Group: %1$s`,group_category:`Category`,group_country:`Country`,group_genre:`Genre`,group_platform:`Platform`,genre_adult:`Adult`,genre_kids:`Kids`,genre_sports:`Sports`,genre_news:`News`,genre_docs:`Documentary`,genre_music:`Music and radio`,genre_movies:`Movies and series`,genre_religion:`Religious`,genre_local:`Local`,genre_national:`National`,genre_uhd:`4K / UHD`,genre_other:`Other`,onb_jellyfin:`Jellyfin`,onb_jellyfin_desc:`Your own media server`,onb_hint_jellyfin:`Enter your Jellyfin server address (e.g. http://192.168.1.10:8096), username and password.`,sub_load:`Load subtitle file (SRT)`,sub_offset:`Subtitle timing`,sub_loaded:`Subtitle loaded`,sub_failed:`Could not read subtitle file`,sub_no_picker:`No file picker on this device`,set_sub_color:`Subtitle color`,set_sub_bg:`Subtitle background`,color_white:`White`,color_yellow:`Yellow`,color_cyan:`Cyan`,set_max_quality:`Maximum video quality`,quality_auto:`Automatic`,vod_versions:`Versions (%1$d)`,vod_version_standard:`Standard`,set_theme:`Theme`,theme_navy:`Navy`,theme_amoled:`AMOLED black`,theme_graphite:`Graphite`,theme_forest:`Forest`,theme_wine:`Wine`,set_home_shelves:`Home shelves`,set_move_hint:`OK: show/hide · Long-press: move up`,set_filter_words:`Category filter words`,set_filter_words_hint:`Removed from category names, comma separated (e.g. [RAW], FHD, VIP)`,set_none:`None`,set_rec_folder:`Recording folder`,set_rec_folder_default:`App storage (selection above)`,set_rec_folder_hint:`Finished recordings are moved to the chosen folder (USB, network share…). Long-press: reset to default.`,nav_extensions:`Add-ons`,ext_add:`Add add-on`,ext_url:`Add-on address (manifest.json)`,ext_empty:`No add-ons yet. Add the manifest address of a Stremio-compatible add-on.`,ext_note:`The app provides no content; only add add-ons you are entitled to use.`,ext_remove:`Remove add-on`,ext_failed:`Could not add the add-on: invalid or unreachable address.`,ext_find_sources:`Find sources`,ext_sources:`Sources`,ext_no_sources:`No playable source found (torrent sources are not supported).`,ext_installed:`Installed add-ons`,ext_specials:`Specials`,sub_url_title:`Subtitle address (SRT)`,sub_url_hint:`This device has no file picker. Enter the subtitle's web address.`,brand_short:`UtopyaTV`,os_account:`OpenSubtitles account`,os_account_none:`Not set`,os_account_set:`Set`,os_account_hint:`Get a free API key from opensubtitles.com. Username/password are optional and raise the daily download limit.`,os_api_key:`API key`,os_username:`Username (optional)`,os_password:`Password (optional)`,set_auto_subs:`Find subtitles automatically (OpenSubtitles)`,set_auto_subs_hint:`If the stream has no subtitle in your language, a correctly matched one is fetched`,sub_find:`Find subtitles (OpenSubtitles)`,sub_searching:`Searching subtitles…`,sub_found:`Subtitle loaded: %1$s`,sub_not_found:`No correctly matching subtitle found for this title`,sub_no_key:`Enter your OpenSubtitles API key in Settings → Player`,sub_limit:`OpenSubtitles daily download limit reached`,home_hero:`Featured`,home_up_next:`Up next`,home_tonight:`Tonight's matches`,home_schedule:`Reminders and recordings`,home_top_movies:`Top rated movies`,home_top_series:`Top rated series`,home_top_rated:`Top rated`,home_new_episodes:`New episodes in your favorites`,home_new_episode_badge:`NEW EPISODE`,home_dismiss_new:`Dismiss new episode alert`,home_for_you:`What to watch today?`,home_for_you_genres:`What to watch today? · %1$s`,home_starting_soon:`Starting soon`,home_reminder_badge:`REMINDER`,home_open_channel:`Open channel`,home_genres:`Browse by genre`,home_edit:`Edit home`,home_edit_hint:`OK: move · ▲▼: reorder · OK: drop · ▶: show/hide`,home_edit_moving:`Moving`,home_edit_reset:`Reset to default`,home_edit_hidden:`Hidden shelves`,home_kind_movie:`MOVIE`,home_kind_series:`SERIES`,browse_movie_count:`%1$d movies`,browse_series_count:`%1$d series`,password_show:`Show password`,password_hide:`Hide password`,home_details:`Details`,home_live_now:`NOW`,home_rec:`REC`,menu_remove_continue:`Remove from Continue watching`,menu_remove_up_next:`Remove from Up next (clears watch history)`,menu_remove_recent:`Remove from recently watched`,menu_open:`Open`,os_phone_title:`Enter from your phone`,os_phone_hint:`Scan the QR code, paste the key on your phone and tap Send. Phone and TV must be on the same Wi-Fi.`,tz_coming_soon:`This section is coming in a later phase.`,tz_feat_tools:`Subtitle search, catch-up and parental control`,tz_m3u_file_desc:`A file on a USB drive plugged into the TV`,tz_hint_file:`Choose an .m3u file on the USB drive plugged into the TV.`,tz_usb_title:`Playlists on USB drive`,tz_usb_empty:`No .m3u file found on the USB drive. Plug in the drive and try again.`,tz_reminder_title:`%1$s is starting`,tz_reminder_text:`on %1$s`,tz_keys_text:`OK/◀: channel list · ▶: guide · ▲▼/CH±: channel · 0-9: channel no · Red: favourite · Green: audio · Yellow: subtitles · Blue: aspect ratio · ⏯: pause · TOOLS/long OK: options`,tz_sub_offset_value:`%1$s s`,tz_archive_hint:`◀▶ 30 s · ⏪⏩ 2 min · OK pause · ■ or long OK → Back to live`,tz_remind_daily:`Remind every day`,tz_remind_weekly:`Remind every week`,tz_rec_note:`Recording is not possible on Tizen. Scheduled programs are reminded before they start, from where you can switch to the channel.`,tz_onb_help_title:`Tips`,tz_onb_help_keyboard:`You can type long addresses with the SmartThings app's keyboard on your phone (same Wi-Fi as the TV).`,tz_onb_help_server:`Your provider gives you the server address; it usually looks like http://domain:8080. No trailing / needed.`,tz_onb_help_creds:`Username and password are case-sensitive. Use the eye button next to the password to check it.`,tz_onb_help_m3u:`To merge several lists, separate the addresses with spaces.`,tz_onb_help_file:`Copy the list (.m3u) to a USB stick, plug it into the TV, then press "Choose file".`,tz_onb_help_epg:`The guide address is optional; if left empty, the provider's own guide is used.`,tz_onb_help_privacy:`Your details are stored only on this device.`},Zt=`utopya.lang`,Qt={tr:Yt,en:Xt};function $t(){try{return localStorage.getItem(Zt)===`en`?`en`:`tr`}catch(e){return`tr`}}var en=I($t());function tn(e){en.value=e;try{localStorage.setItem(Zt,e)}catch(e){}}function R(e,...t){var n,r;let i=(n=(r=Qt[en.value][e])==null?Yt[e]:r)==null?e:n,a=0;return t.length?i.replace(/%(?:(\d)\$)?(\+)?[sd]/g,(e,n,r)=>{let i=t[n?n-1:a++];return r&&typeof i==`number`&&i>=0?`+${i}`:String(i)}):i}var nn=(e,t)=>e.replace(/(image\.tmdb\.org\/t\/p\/)(original|w\d+)\//,(e,n,r)=>r!==`original`&&+r.slice(1)<=t?e:`${n}w${t}/`),rn=null,an=e=>{let t=e.getAttribute(`data-src`);t&&e.getAttribute(`src`)!==t&&(e.src=t)};function on(){return rn||(rn=new IntersectionObserver(e=>{for(let t of e){let e=t.target;if(t.intersectionRatio>0){an(e);let t=e.closest(`.shelf-row > *`),n=t&&t.nextElementSibling;n&&Array.prototype.forEach.call(n.querySelectorAll(`img[data-src]`),an)}else e.getAttribute(`src`)&&!e.complete&&e.removeAttribute(`src`)}},{rootMargin:`20% 0px`}),rn)}function sn(e){let t=F(null);return P(()=>{let e=t.current;e.getAttribute(`src`)&&e.removeAttribute(`src`);let n=on();return n.observe(e),()=>n.unobserve(e)},[e.src]),j(`img`,{ref:t,"data-src":e.src,alt:e.alt||``,class:e.class,onLoad:e=>on().unobserve(e.currentTarget),onError:e.onError})}var cn={search:`M15.5 14h-.79l-.28-.27A6.47 6.47 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z`,play:`M8 5v14l11-7z`,pause:`M6 19h4V5H6v14zm8-14v14h4V5h-4z`,check:`M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z`,star:`M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z`,starOutline:`M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z`,lock:`M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z`,pin:`M16 9V4h1c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1h1v5c0 1.66-1.34 3-3 3v2h5.97v7l1 1 1-1v-7H19v-2c-1.66 0-3-1.34-3-3z`,tune:`M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z`,list:`M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z`,guide:`M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z`,audio:`M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z`,subtitles:`M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM4 12h4v2H4v-2zm10 6H4v-2h10v2zm6 0h-4v-2h4v2zm0-4H10v-2h10v2z`,aspect:`M19 12h-2v3h-3v2h5v-5zM7 9h3V7H5v5h2V9zm14-6H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02z`,edit:`M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a.996.996 0 0 0 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z`,more:`M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z`,error:`M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z`,dns:`M20 13H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zM7 19c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM20 3H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zM7 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z`,link:`M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z`,qr:`M3 11h8V3H3v8zm2-6h4v4H5V5zM3 21h8v-8H3v8zm2-6h4v4H5v-4zM13 3v8h8V3h-8zm6 6h-4V5h4v4zM13 13h2v2h-2zM15 15h2v2h-2zM13 17h2v2h-2zM17 17h2v2h-2zM19 19h2v2h-2zM15 19h2v2h-2zM17 13h2v2h-2zM19 15h2v2h-2z`,file:`M6 2c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6H6zm7 7V3.5L18.5 9H13z`,live:`M21 6h-7.59l3.29-3.29L16 2l-4 4-4-4-.71.71L10.59 6H3c-1.1 0-2 .89-2 2v12c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V8c0-1.11-.9-2-2-2zm0 14H3V8h18v12zM9 10v8l7-4z`,movie:`M18 4l2 4h-3l-2-4h-2l2 4h-3l-2-4H8l2 4H7L5 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4h-4z`,grid:`M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z`,chevron:`M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z`,add:`M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z`,visibility:`M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z`,visibilityOff:`M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z`,back:`M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z`,folder:`M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z`,settings:`M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58a.49.49 0 0 0 .12-.61l-1.92-3.32a.49.49 0 0 0-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54a.48.48 0 0 0-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96a.49.49 0 0 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58a.49.49 0 0 0-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6A3.6 3.6 0 1 1 12 8.4a3.6 3.6 0 0 1 0 7.2z`};function ln(e){let t=F(null),[n,r]=N(!1),i=j(`div`,{class:`field-box`,"data-focus":!0,"data-focus-default":e.initial||void 0,onClick:()=>t.current.focus(),children:j(`input`,{ref:t,tabIndex:-1,type:e.password&&!n?`password`:`text`,value:e.value,placeholder:e.placeholder,autocomplete:`off`,autocapitalize:`off`,spellcheck:!1,onInput:t=>e.onInput(t.currentTarget.value)})});return j(`div`,{class:`field ${e.class||``}`,children:[j(`span`,{class:`field-label`,children:e.label}),e.password?j(`div`,{class:`field-row`,children:[i,j(`button`,{class:`eye-btn`,"data-focus":!0,"aria-label":R(n?`password_hide`:`password_show`),onClick:()=>r(e=>!e),children:j(z,{name:n?`visibilityOff`:`visibility`})})]}):i]})}function z({name:e,class:t}){return j(`svg`,{class:t?`icon ${t}`:`icon`,viewBox:`0 0 24 24`,"aria-hidden":`true`,children:j(`path`,{d:cn[e],fill:`currentColor`})})}function un(e){let t=F(null),n=F(document.activeElement);return P(()=>(L(t.current),()=>{var e;return(e=n.current)==null?void 0:e.focus()}),[]),Bt(t=>t===`back`?(e.onDismiss(),!0):`default`),j(`div`,{class:`scrim`,"data-focus-scope":!0,children:j(`div`,{class:`dialog glass`,ref:t,role:`dialog`,children:[j(`h2`,{children:e.title}),j(`p`,{children:e.message}),j(`div`,{class:`row`,children:[j(`button`,{class:`btn`,"data-focus":!0,"data-focus-default":!0,onClick:e.onConfirm,children:e.confirmLabel||R(`ok`)}),j(`button`,{class:`btn`,"data-focus":!0,onClick:e.onDismiss,children:R(`cancel`)})]})]})})}var dn=I(null),fn;function B(e){dn.value=e,clearTimeout(fn),fn=window.setTimeout(()=>dn.value=null,2e3)}function pn(){return dn.value?j(`div`,{class:`toast`,children:dn.value}):null}function mn(e){let t=F(null),n=F(document.activeElement);P(()=>(L(t.current),()=>n.current&&n.current.isConnected&&n.current.focus()),[]),Bt(t=>t===`back`?(e.onClose(),!0):`default`);let r=e.items.some(e=>e.checked);return j(`div`,{class:`scrim`,"data-focus-scope":!0,children:j(`div`,{class:`menu-dialog`,ref:t,role:`dialog`,children:[j(`h2`,{children:e.title}),j(`div`,{class:`menu-list`,children:e.items.map((t,n)=>j(`button`,{class:`menu-item${t.checked?` checked`:``}`,"data-focus":!0,"data-focus-default":(r?t.checked:n===0)||void 0,onClick:()=>{e.onClose(),t.onSelect()},children:[t.label,t.checked&&j(z,{name:`check`})]},n))})]})})}function hn(e){let[t,n]=N(``),r=F(void 0),i=F(e);return i.current=e,P(()=>()=>clearTimeout(r.current),[]),{digits:t,push:e=>{let a=(t+e).slice(0,4);clearTimeout(r.current);let o=()=>{n(``);let e=parseInt(a,10);e>0&&i.current(e)};a.length===4?o():(n(a),r.current=window.setTimeout(o,1500))}}}function gn({digits:e}){return e?j(`div`,{class:`number-box`,children:e}):null}function _n(e){let[t,n]=N(``),[r,i]=N(!1),a=F(null),o=F(document.activeElement);P(()=>(L(a.current),()=>o.current&&o.current.isConnected&&o.current.focus()),[]);let s=r=>{let a=(t+r).slice(0,4);a.length<4?(n(a),i(!1)):(n(``),e.check(a)?e.onDone(a):i(!0))};return Bt((r,i)=>r===`back`&&i.keyCode!==8?(e.onClose(),!0):r.startsWith(`digit`)?(s(r.slice(5)),!0):i.keyCode===8||i.keyCode===46?(n(t.slice(0,-1)),!0):`default`),j(`div`,{class:`scrim`,"data-focus-scope":!0,children:j(`div`,{class:`pin-dialog`,ref:a,role:`dialog`,children:[j(`h2`,{children:e.title}),j(`p`,{class:`pin-dots`,children:[0,1,2,3].map(e=>e<t.length?`●`:`○`).join(` `)}),j(`p`,{class:`pin-error`,children:r?R(`pin_wrong`):`\xA0`}),j(`div`,{class:`pin-pad`,children:[`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`,`⌫`,`0`].map(e=>j(`button`,{class:`btn outline pin-key`,"data-focus":!0,"data-focus-default":e===`1`||void 0,onClick:()=>e===`⌫`?n(t.slice(0,-1)):s(e),children:e},e))})]})})}function vn(e){let[t,n]=N(e.initial),r=F(null);return P(()=>{L(r.current)},[]),Bt(t=>t===`back`?(e.onClose(),!0):`default`),j(`div`,{class:`scrim`,"data-focus-scope":!0,children:j(`div`,{class:`menu-dialog`,ref:r,role:`dialog`,children:[j(`h2`,{children:e.title}),j(ln,{label:e.label,value:t,onInput:n,placeholder:e.placeholder,password:e.password,initial:!0}),j(`button`,{class:`btn primary`,"data-focus":!0,onClick:()=>{e.onClose(),e.onSave(t)},children:R(`save`)})]})})}function yn({text:e,onClose:t}){let n=F(null);return P(()=>{L(n.current)},[]),Bt(e=>e===`back`?(t(),!0):`default`),j(`div`,{class:`scrim`,"data-focus-scope":!0,children:j(`div`,{class:`dialog glass`,ref:n,role:`dialog`,children:[j(`p`,{children:e}),j(`button`,{class:`btn primary`,"data-focus":!0,"data-focus-default":!0,onClick:t,children:R(`ok`)})]})})}function bn({title:e}){return j(`section`,{class:`placeholder`,children:[j(`h1`,{children:e}),j(`p`,{class:`muted`,children:R(`tz_coming_soon`)})]})}var xn=Uint8Array,Sn=Uint16Array,Cn=Int32Array,wn=new xn([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Tn=new xn([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),En=new xn([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Dn=function(e,t){for(var n=new Sn(31),r=0;r<31;++r)n[r]=t+=1<<e[r-1];for(var i=new Cn(n[30]),r=1;r<30;++r)for(var a=n[r];a<n[r+1];++a)i[a]=a-n[r]<<5|r;return{b:n,r:i}},On=Dn(wn,2),kn=On.b,An=On.r;kn[28]=258,An[258]=28;var jn=Dn(Tn,0),Mn=jn.b;jn.r;for(var Nn=new Sn(32768),Pn=0;Pn<32768;++Pn){var Fn=(Pn&43690)>>1|(Pn&21845)<<1;Fn=(Fn&52428)>>2|(Fn&13107)<<2,Fn=(Fn&61680)>>4|(Fn&3855)<<4,Nn[Pn]=((Fn&65280)>>8|(Fn&255)<<8)>>1}for(var In=(function(e,t,n){for(var r=e.length,i=0,a=new Sn(t);i<r;++i)e[i]&&++a[e[i]-1];var o=new Sn(t);for(i=1;i<t;++i)o[i]=o[i-1]+a[i-1]<<1;var s;if(n){s=new Sn(1<<t);var c=15-t;for(i=0;i<r;++i)if(e[i])for(var l=i<<4|e[i],u=t-e[i],d=o[e[i]-1]++<<u,f=d|(1<<u)-1;d<=f;++d)s[Nn[d]>>c]=l}else for(s=new Sn(r),i=0;i<r;++i)e[i]&&(s[i]=Nn[o[e[i]-1]++]>>15-e[i]);return s}),Ln=new xn(288),Pn=0;Pn<144;++Pn)Ln[Pn]=8;for(var Pn=144;Pn<256;++Pn)Ln[Pn]=9;for(var Pn=256;Pn<280;++Pn)Ln[Pn]=7;for(var Pn=280;Pn<288;++Pn)Ln[Pn]=8;for(var Rn=new xn(32),Pn=0;Pn<32;++Pn)Rn[Pn]=5;var zn=In(Ln,9,1),Bn=In(Rn,5,1),Vn=function(e){for(var t=e[0],n=1;n<e.length;++n)e[n]>t&&(t=e[n]);return t},Hn=function(e,t,n){var r=t/8|0;return(e[r]|e[r+1]<<8)>>(t&7)&n},Un=function(e,t){var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(t&7)},Wn=function(e){return(e+7)/8|0},Gn=function(e,t,n){return(t==null||t<0)&&(t=0),(n==null||n>e.length)&&(n=e.length),new xn(e.subarray(t,n))},Kn=[`unexpected EOF`,`invalid block type`,`invalid length/literal`,`invalid distance`,`stream finished`,`no stream handler`,,`no callback`,`invalid UTF-8 data`,`extra field too long`,`date not in range 1980-2099`,`filename too long`,`stream finishing`,`invalid zip data`],qn=function(e,t,n){var r=Error(t||Kn[e]);if(r.code=e,Error.captureStackTrace&&Error.captureStackTrace(r,qn),!n)throw r;return r},Jn=function(e,t,n,r){var i=e.length,a=r?r.length:0;if(!i||t.f&&!t.l)return n||new xn(0);var o=!n,s=o||t.i!=2,c=t.i;o&&(n=new xn(i*3));var l=function(e){var t=n.length;if(e>t){var r=new xn(Math.max(t*2,e));r.set(n),n=r}},u=t.f||0,d=t.p||0,f=t.b||0,p=t.l,m=t.d,h=t.m,g=t.n,_=i*8;do{if(!p){u=Hn(e,d,1);var v=Hn(e,d+1,3);if(d+=3,!v){var y=Wn(d)+4,b=e[y-4]|e[y-3]<<8,x=y+b;if(x>i){c&&qn(0);break}s&&l(f+b),n.set(e.subarray(y,x),f),t.b=f+=b,t.p=d=x*8,t.f=u;continue}if(v==1)p=zn,m=Bn,h=9,g=5;else if(v==2){var S=Hn(e,d,31)+257,ee=Hn(e,d+10,15)+4,C=S+Hn(e,d+5,31)+1;d+=14;for(var w=new xn(C),te=new xn(19),T=0;T<ee;++T)te[En[T]]=Hn(e,d+T*3,7);d+=ee*3;for(var E=Vn(te),D=(1<<E)-1,O=In(te,E,1),T=0;T<C;){var ne=O[Hn(e,d,D)];d+=ne&15;var y=ne>>4;if(y<16)w[T++]=y;else{var re=0,k=0;for(y==16?(k=3+Hn(e,d,3),d+=2,re=w[T-1]):y==17?(k=3+Hn(e,d,7),d+=3):y==18&&(k=11+Hn(e,d,127),d+=7);k--;)w[T++]=re}}var ie=w.subarray(0,S),ae=w.subarray(S);h=Vn(ie),g=Vn(ae),p=In(ie,h,1),m=In(ae,g,1)}else qn(1);if(d>_){c&&qn(0);break}}s&&l(f+131072);for(var oe=(1<<h)-1,se=(1<<g)-1,ce=d;;ce=d){var re=p[Un(e,d)&oe],le=re>>4;if(d+=re&15,d>_){c&&qn(0);break}if(re||qn(2),le<256)n[f++]=le;else if(le==256){ce=d,p=null;break}else{var ue=le-254;if(le>264){var T=le-257,A=wn[T];ue=Hn(e,d,(1<<A)-1)+kn[T],d+=A}var de=m[Un(e,d)&se],j=de>>4;de||qn(3),d+=de&15;var ae=Mn[j];if(j>3){var A=Tn[j];ae+=Un(e,d)&(1<<A)-1,d+=A}if(d>_){c&&qn(0);break}s&&l(f+131072);var fe=f+ue;if(f<ae){var M=a-ae,pe=Math.min(ae,fe);for(M+f<0&&qn(3);f<pe;++f)n[f]=r[M+f]}for(;f<fe;++f)n[f]=n[f-ae]}}t.l=p,t.p=ce,t.b=f,t.f=u,p&&(u=1,t.m=h,t.d=m,t.n=g)}while(!u);return f!=n.length&&o?Gn(n,0,f):n.subarray(0,f)},Yn=new xn(0),Xn=function(e){(e[0]!=31||e[1]!=139||e[2]!=8)&&qn(6,`invalid gzip data`);var t=e[3],n=10;t&4&&(n+=(e[10]|e[11]<<8)+2);for(var r=(t>>3&1)+(t>>4&1);r>0;r-=!e[n++]);return n+(t&2)},Zn=function(){function e(e,t){typeof e==`function`&&(t=e,e={}),this.ondata=t;var n=e&&e.dictionary&&e.dictionary.subarray(-32768);this.s={i:0,b:n?n.length:0},this.o=new xn(32768),this.p=new xn(0),n&&this.o.set(n)}return e.prototype.e=function(e){if(this.ondata||qn(5),this.d&&qn(4),!this.p.length)this.p=e;else if(e.length){var t=new xn(this.p.length+e.length);t.set(this.p),t.set(e,this.p.length),this.p=t}},e.prototype.c=function(e){this.s.i=+(this.d=e||!1);var t=this.s.b,n=Jn(this.p,this.s,this.o);this.ondata(Gn(n,t,this.s.b),this.d),this.o=Gn(n,this.s.b-32768),this.s.b=this.o.length,this.p=Gn(this.p,this.s.p/8|0),this.s.p&=7},e.prototype.push=function(e,t){this.e(e),this.c(t)},e}(),Qn=function(){function e(e,t){this.v=1,this.r=0,Zn.call(this,e,t)}return e.prototype.push=function(e,t){if(Zn.prototype.e.call(this,e),this.r+=e.length,this.v){var n=this.p.subarray(this.v-1),r=n.length>3?Xn(n):4;if(r>n.length){if(!t)return}else this.v>1&&this.onmember&&this.onmember(this.r-n.length);this.p=n.subarray(r),this.v=0}Zn.prototype.c.call(this,0),this.s.f&&!this.s.l?(this.v=Wn(this.s.p)+9,this.s={i:0},this.o=new xn(0),this.push(new xn(0),t)):t&&Zn.prototype.c.call(this,t)},e}(),$n=typeof TextDecoder<`u`&&new TextDecoder;try{$n.decode(Yn,{stream:!0})}catch(e){}function er(e){"@babel/helpers - typeof";return er=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},er(e)}function tr(e,t){if(er(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(er(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function nr(e){var t=tr(e,`string`);return er(t)==`symbol`?t:t+``}function rr(e,t,n){return(t=nr(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ir=class extends Error{constructor(e,t){super(t||e),rr(this,`error`,void 0),this.error=e}},ar=e=>`error_${e.toLowerCase()}`;function or(e){return e instanceof ir?e.error:e&&e.name===`QuotaExceededError`?`STORAGE`:`UNKNOWN`}var sr=e=>e,cr=e=>e.trim().replace(/[.,]+$/,``);function lr(e,t){return new Promise((n,r)=>{let i=setTimeout(()=>r(new ir(`TIMEOUT`)),t);e.then(e=>{clearTimeout(i),n(e)},e=>{clearTimeout(i),r(e)})})}async function ur(e,t=3e4){let n;try{n=await lr(fetch(sr(e),{credentials:`omit`}),t)}catch(e){throw e instanceof ir?e:new ir(`NETWORK`,String(e))}if(n.ok)return n;throw n.status===401||n.status===403?new ir(`AUTH`):n.status===404?new ir(`NOT_FOUND`):n.status>=500?new ir(`SERVER`,String(n.status)):new ir(`NETWORK`,String(n.status))}async function dr(e,t,n=6e4){let r=new TextDecoder(`utf-8`),i=e.body.getReader(),a,o=[],s=(e,t)=>{let n=r.decode(e,{stream:!t});n&&o.push(n)};try{for(;;){let{done:e,value:r}=await lr(i.read(),n);a===void 0&&r&&r.length&&(a=r[0]===31&&r[1]===139?new Qn((e,t)=>s(e,t)):null),e?a?a.push(new Uint8Array,!0):s(new Uint8Array,!0):a?a.push(r):s(r,!1);let c=o;o=[];for(let e of c)if(await t(e)===!1){i.cancel();return}if(e)return}}catch(e){throw i.cancel(),e instanceof ir?e:new ir(`NETWORK`,String(e))}}function fr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function V(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?fr(Object(n),!0).forEach(function(t){rr(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):fr(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var pr=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:global,mr=Object.keys,hr=Array.isArray;function gr(e,t){return typeof t!=`object`||mr(t).forEach((function(n){e[n]=t[n]})),e}typeof Promise>`u`||pr.Promise||(pr.Promise=Promise);var _r=Object.getPrototypeOf,vr={}.hasOwnProperty;function yr(e,t){return vr.call(e,t)}function br(e,t){typeof t==`function`&&(t=t(_r(e))),(typeof Reflect>`u`?mr:Reflect.ownKeys)(t).forEach((n=>{Sr(e,n,t[n])}))}var xr=Object.defineProperty;function Sr(e,t,n,r){xr(e,t,gr(n&&yr(n,`get`)&&typeof n.get==`function`?{get:n.get,set:n.set,configurable:!0}:{value:n,configurable:!0,writable:!0},r))}function Cr(e){return{from:function(t){return e.prototype=Object.create(t.prototype),Sr(e.prototype,`constructor`,e),{extend:br.bind(null,e.prototype)}}}}var wr=Object.getOwnPropertyDescriptor;function Tr(e,t){let n;return wr(e,t)||(n=_r(e))&&Tr(n,t)}var Er=[].slice;function Dr(e,t,n){return Er.call(e,t,n)}function Or(e,t){return t(e)}function kr(e){if(!e)throw Error(`Assertion Failed`)}function Ar(e){pr.setImmediate?setImmediate(e):setTimeout(e,0)}function jr(e,t){return e.reduce(((e,n,r)=>{var i=t(n,r);return i&&(e[i[0]]=i[1]),e}),{})}function Mr(e,t){if(typeof t==`string`&&yr(e,t))return e[t];if(!t)return e;if(typeof t!=`string`){for(var n=[],r=0,i=t.length;r<i;++r){var a=Mr(e,t[r]);n.push(a)}return n}var o=t.indexOf(`.`);if(o!==-1){var s=e[t.substr(0,o)];return s==null?void 0:Mr(s,t.substr(o+1))}}function Nr(e,t,n){if(e&&t!==void 0&&(!(`isFrozen`in Object)||!Object.isFrozen(e))){if(typeof t!=`string`&&`length`in t){kr(typeof n!=`string`&&`length`in n);for(var r=0,i=t.length;r<i;++r)Nr(e,t[r],n[r])}else{var a=t.indexOf(`.`);if(a!==-1){var o=t.substr(0,a),s=t.substr(a+1);if(s===``)n===void 0?hr(e)&&!isNaN(parseInt(o))?e.splice(o,1):delete e[o]:e[o]=n;else{var c=e[o];c&&yr(e,o)||(c=e[o]={}),Nr(c,s,n)}}else n===void 0?hr(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=n}}}function Pr(e){var t={};for(var n in e)yr(e,n)&&(t[n]=e[n]);return t}var Fr=[].concat;function Ir(e){return Fr.apply([],e)}var Lr=`BigUint64Array,BigInt64Array,Array,Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,FileSystemDirectoryHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey`.split(`,`).concat(Ir([8,16,32,64].map((e=>[`Int`,`Uint`,`Float`].map((t=>t+e+`Array`)))))).filter((e=>pr[e])),Rr=Lr.map((e=>pr[e]));jr(Lr,(e=>[e,!0]));var zr=null;function Br(e){zr=typeof WeakMap<`u`&&new WeakMap;let t=Vr(e);return zr=null,t}function Vr(e){if(!e||typeof e!=`object`)return e;let t=zr&&zr.get(e);if(t)return t;if(hr(e)){t=[],zr&&zr.set(e,t);for(var n=0,r=e.length;n<r;++n)t.push(Vr(e[n]))}else if(Rr.indexOf(e.constructor)>=0)t=e;else{let n=_r(e);for(var i in t=n===Object.prototype?{}:Object.create(n),zr&&zr.set(e,t),e)yr(e,i)&&(t[i]=Vr(e[i]))}return t}var{toString:Hr}={};function Ur(e){return Hr.call(e).slice(8,-1)}var Wr=typeof Symbol<`u`?Symbol.iterator:`@@iterator`,Gr=typeof Wr==`symbol`?function(e){var t;return e!=null&&(t=e[Wr])&&t.apply(e)}:function(){return null},Kr={};function qr(e){var t,n,r,i;if(arguments.length===1){if(hr(e))return e.slice();if(this===Kr&&typeof e==`string`)return[e];if(i=Gr(e)){for(n=[];!(r=i.next()).done;)n.push(r.value);return n}if(e==null)return[e];if(typeof(t=e.length)==`number`){for(n=Array(t);t--;)n[t]=e[t];return n}return[e]}for(t=arguments.length,n=Array(t);t--;)n[t]=arguments[t];return n}var Jr=typeof Symbol<`u`?e=>e[Symbol.toStringTag]===`AsyncFunction`:()=>!1,Yr=typeof location<`u`&&/^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);function Xr(e,t){Yr=e,Zr=t}var Zr=()=>!0,Qr=!Error(``).stack;function $r(){if(Qr)try{throw $r.arguments,Error()}catch(e){return e}return Error()}function ei(e,t){var n=e.stack;return n?(t=t||0,n.indexOf(e.name)===0&&(t+=(e.name+e.message).split(`
|
|
3
|
+
`).length),n.split(`
|
|
4
|
+
`).slice(t).filter(Zr).map((e=>`
|
|
5
|
+
`+e)).join(``)):``}var ti=[`Unknown`,`Constraint`,`Data`,`TransactionInactive`,`ReadOnly`,`Version`,`NotFound`,`InvalidState`,`InvalidAccess`,`Abort`,`Timeout`,`QuotaExceeded`,`Syntax`,`DataClone`],ni=[`Modify`,`Bulk`,`OpenFailed`,`VersionChange`,`Schema`,`Upgrade`,`InvalidTable`,`MissingAPI`,`NoSuchDatabase`,`InvalidArgument`,`SubTransaction`,`Unsupported`,`Internal`,`DatabaseClosed`,`PrematureCommit`,`ForeignAwait`].concat(ti),ri={VersionChanged:`Database version changed by other database connection`,DatabaseClosed:`Database has been closed`,Abort:`Transaction aborted`,TransactionInactive:`Transaction has already completed or failed`,MissingAPI:`IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb`};function ii(e,t){this._e=$r(),this.name=e,this.message=t}function ai(e,t){return e+`. Errors: `+Object.keys(t).map((e=>t[e].toString())).filter(((e,t,n)=>n.indexOf(e)===t)).join(`
|
|
6
|
+
`)}function oi(e,t,n,r){this._e=$r(),this.failures=t,this.failedKeys=r,this.successCount=n,this.message=ai(e,t)}function si(e,t){this._e=$r(),this.name=`BulkError`,this.failures=Object.keys(t).map((e=>t[e])),this.failuresByPos=t,this.message=ai(e,t)}Cr(ii).from(Error).extend({stack:{get:function(){return this._stack||(this._stack=this.name+`: `+this.message+ei(this._e,2))}},toString:function(){return this.name+`: `+this.message}}),Cr(oi).from(ii),Cr(si).from(ii);var ci=ni.reduce(((e,t)=>(e[t]=t+`Error`,e)),{}),li=ii,H=ni.reduce(((e,t)=>{var n=t+`Error`;function r(e,r){this._e=$r(),this.name=n,e?typeof e==`string`?(this.message=`${e}${r?`
|
|
7
|
+
`+r:``}`,this.inner=r||null):typeof e==`object`&&(this.message=`${e.name} ${e.message}`,this.inner=e):(this.message=ri[t]||n,this.inner=null)}return Cr(r).from(li),e[t]=r,e}),{});H.Syntax=SyntaxError,H.Type=TypeError,H.Range=RangeError;var ui=ti.reduce(((e,t)=>(e[t+`Error`]=H[t],e)),{}),di=ni.reduce(((e,t)=>([`Syntax`,`Type`,`Range`].indexOf(t)===-1&&(e[t+`Error`]=H[t]),e)),{});function U(){}function fi(e){return e}function pi(e,t){return e==null||e===fi?t:function(n){return t(e(n))}}function mi(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function hi(e,t){return e===U?t:function(){var n=e.apply(this,arguments);n!==void 0&&(arguments[0]=n);var r=this.onsuccess,i=this.onerror;this.onsuccess=null,this.onerror=null;var a=t.apply(this,arguments);return r&&(this.onsuccess=this.onsuccess?mi(r,this.onsuccess):r),i&&(this.onerror=this.onerror?mi(i,this.onerror):i),a===void 0?n:a}}function gi(e,t){return e===U?t:function(){e.apply(this,arguments);var n=this.onsuccess,r=this.onerror;this.onsuccess=this.onerror=null,t.apply(this,arguments),n&&(this.onsuccess=this.onsuccess?mi(n,this.onsuccess):n),r&&(this.onerror=this.onerror?mi(r,this.onerror):r)}}function _i(e,t){return e===U?t:function(n){var r=e.apply(this,arguments);gr(n,r);var i=this.onsuccess,a=this.onerror;this.onsuccess=null,this.onerror=null;var o=t.apply(this,arguments);return i&&(this.onsuccess=this.onsuccess?mi(i,this.onsuccess):i),a&&(this.onerror=this.onerror?mi(a,this.onerror):a),r===void 0?o===void 0?void 0:o:gr(r,o)}}function vi(e,t){return e===U?t:function(){return!1!==t.apply(this,arguments)&&e.apply(this,arguments)}}function yi(e,t){return e===U?t:function(){var n=e.apply(this,arguments);if(n&&typeof n.then==`function`){for(var r=this,i=arguments.length,a=Array(i);i--;)a[i]=arguments[i];return n.then((function(){return t.apply(r,a)}))}return t.apply(this,arguments)}}di.ModifyError=oi,di.DexieError=ii,di.BulkError=si;var bi={},xi=100,[Si,Ci,wi]=typeof Promise>`u`?[]:(()=>{let e=Promise.resolve();if(typeof crypto>`u`||!crypto.subtle)return[e,_r(e),e];let t=crypto.subtle.digest(`SHA-512`,new Uint8Array([0]));return[t,_r(t),e]})(),Ti=Ci&&Ci.then,Ei=Si&&Si.constructor,Di=!!wi,Oi=!1,ki=wi?()=>{wi.then(Xi)}:pr.setImmediate?setImmediate.bind(null,Xi):pr.MutationObserver?()=>{var e=document.createElement(`div`);new MutationObserver((()=>{Xi(),e=null})).observe(e,{attributes:!0}),e.setAttribute(`i`,`1`)}:()=>{setTimeout(Xi,0)},Ai=function(e,t){Ri.push([e,t]),Mi&&(ki(),Mi=!1)},ji=!0,Mi=!0,Ni=[],Pi=[],Fi=null,Ii=fi,Li={id:`global`,global:!0,ref:0,unhandleds:[],onunhandled:xa,pgp:!1,env:{},finalize:function(){this.unhandleds.forEach((e=>{try{xa(e[0],e[1])}catch(e){}}))}},W=Li,Ri=[],zi=0,Bi=[];function G(e){if(typeof this!=`object`)throw TypeError(`Promises must be constructed via new`);this._listeners=[],this.onuncatched=U,this._lib=!1;var t=this._PSD=W;if(Yr&&(this._stackHolder=$r(),this._prev=null,this._numPrev=0),typeof e!=`function`){if(e!==bi)throw TypeError(`Not a function`);this._state=arguments[1],this._value=arguments[2],!1===this._state&&Wi(this,this._value)}else this._state=null,this._value=null,++t.ref,Ui(this,e)}var Vi={get:function(){var e=W,t=oa;function n(n,r){var i=!e.global&&(e!==W||t!==oa);let a=i&&!ua();var o=new G(((t,o)=>{Ki(this,new Hi(va(n,e,i,a),va(r,e,i,a),t,o,e))}));return Yr&&Yi(o,this),o}return n.prototype=bi,n},set:function(e){Sr(this,`then`,e&&e.prototype===bi?Vi:{get:function(){return e},set:Vi.set})}};function Hi(e,t,n,r,i){this.onFulfilled=typeof e==`function`?e:null,this.onRejected=typeof t==`function`?t:null,this.resolve=n,this.reject=r,this.psd=i}function Ui(e,t){try{t((t=>{if(e._state===null){if(t===e)throw TypeError(`A promise cannot be resolved with itself.`);var n=e._lib&&Zi();t&&typeof t.then==`function`?Ui(e,((e,n)=>{t instanceof G?t._then(e,n):t.then(e,n)})):(e._state=!0,e._value=t,Gi(e)),n&&Qi()}}),Wi.bind(null,e))}catch(t){Wi(e,t)}}function Wi(e,t){if(Pi.push(t),e._state===null){var n=e._lib&&Zi();t=Ii(t),e._state=!1,e._value=t,Yr&&typeof t==`object`&&t&&!t._promise&&function(e,t,n){try{e.apply(null,n)}catch(e){t&&t(e)}}((()=>{var n=Tr(t,`stack`);t._promise=e,Sr(t,`stack`,{get:()=>Oi?n&&(n.get?n.get.apply(t):n.value):e.stack})})),function(e){Ni.some((t=>t._value===e._value))||Ni.push(e)}(e),Gi(e),n&&Qi()}}function Gi(e){var t=e._listeners;e._listeners=[];for(var n=0,r=t.length;n<r;++n)Ki(e,t[n]);var i=e._PSD;--i.ref||i.finalize(),zi===0&&(++zi,Ai((()=>{--zi==0&&$i()}),[]))}function Ki(e,t){if(e._state!==null){var n=e._state?t.onFulfilled:t.onRejected;if(n===null)return(e._state?t.resolve:t.reject)(e._value);++t.psd.ref,++zi,Ai(qi,[n,e,t])}else e._listeners.push(t)}function qi(e,t,n){try{Fi=t;var r,i=t._value;t._state?r=e(i):(Pi.length&&(Pi=[]),r=e(i),Pi.indexOf(i)===-1&&function(e){for(var t=Ni.length;t;)if(Ni[--t]._value===e._value)return void Ni.splice(t,1)}(t)),n.resolve(r)}catch(e){n.reject(e)}finally{Fi=null,--zi==0&&$i(),--n.psd.ref||n.psd.finalize()}}function Ji(e,t,n){if(t.length===n)return t;var r=``;if(!1===e._state){var i,a,o=e._value;o==null?(i=o,a=``):(i=o.name||`Error`,a=o.message||o,r=ei(o,0)),t.push(i+(a?`: `+a:``)+r)}return Yr&&((r=ei(e._stackHolder,2))&&t.indexOf(r)===-1&&t.push(r),e._prev&&Ji(e._prev,t,n)),t}function Yi(e,t){var n=t?t._numPrev+1:0;n<100&&(e._prev=t,e._numPrev=n)}function Xi(){Zi()&&Qi()}function Zi(){var e=ji;return ji=!1,Mi=!1,e}function Qi(){var e,t,n;do for(;Ri.length>0;)for(e=Ri,Ri=[],n=e.length,t=0;t<n;++t){var r=e[t];r[0].apply(null,r[1])}while(Ri.length>0);ji=!0,Mi=!0}function $i(){var e=Ni;Ni=[],e.forEach((e=>{e._PSD.onunhandled.call(null,e._value,e)}));for(var t=Bi.slice(0),n=t.length;n;)t[--n]()}function ea(e){return new G(bi,!1,e)}function ta(e,t){var n=W;return function(){var r=Zi(),i=W;try{return ma(n,!0),e.apply(this,arguments)}catch(e){t&&t(e)}finally{ma(i,!1),r&&Qi()}}}br(G.prototype,{then:Vi,_then:function(e,t){Ki(this,new Hi(null,null,e,t,W))},catch:function(e){if(arguments.length===1)return this.then(null,e);var t=arguments[0],n=arguments[1];return typeof t==`function`?this.then(null,(e=>e instanceof t?n(e):ea(e))):this.then(null,(e=>e&&e.name===t?n(e):ea(e)))},finally:function(e){return this.then((t=>(e(),t)),(t=>(e(),ea(t))))},stack:{get:function(){if(this._stack)return this._stack;try{Oi=!0;var e=Ji(this,[],20).join(`
|
|
8
|
+
From previous: `);return this._state!==null&&(this._stack=e),e}finally{Oi=!1}}},timeout:function(e,t){return e<1/0?new G(((n,r)=>{var i=setTimeout((()=>r(new H.Timeout(t))),e);this.then(n,r).finally(clearTimeout.bind(null,i))})):this}}),typeof Symbol<`u`&&Symbol.toStringTag&&Sr(G.prototype,Symbol.toStringTag,`Dexie.Promise`),Li.env=ha(),br(G,{all:function(){var e=qr.apply(null,arguments).map(da);return new G((function(t,n){e.length===0&&t([]);var r=e.length;e.forEach(((i,a)=>G.resolve(i).then((n=>{e[a]=n,--r||t(e)}),n)))}))},resolve:e=>{if(e instanceof G)return e;if(e&&typeof e.then==`function`)return new G(((t,n)=>{e.then(t,n)}));var t=new G(bi,!0,e);return Yi(t,Fi),t},reject:ea,race:function(){var e=qr.apply(null,arguments).map(da);return new G(((t,n)=>{e.map((e=>G.resolve(e).then(t,n)))}))},PSD:{get:()=>W,set:e=>W=e},totalEchoes:{get:()=>oa},newPSD:ca,usePSD:ga,scheduler:{get:()=>Ai,set:e=>{Ai=e}},rejectionMapper:{get:()=>Ii,set:e=>{Ii=e}},follow:(e,t)=>new G(((n,r)=>ca(((t,n)=>{var r=W;r.unhandleds=[],r.onunhandled=n,r.finalize=mi((function(){(function(e){function t(){e(),Bi.splice(Bi.indexOf(t),1)}Bi.push(t),++zi,Ai((()=>{--zi==0&&$i()}),[])})((()=>{this.unhandleds.length===0?t():n(this.unhandleds[0])}))}),r.finalize),e()}),t,n,r)))}),Ei&&(Ei.allSettled&&Sr(G,`allSettled`,(function(){let e=qr.apply(null,arguments).map(da);return new G((t=>{e.length===0&&t([]);let n=e.length,r=Array(n);e.forEach(((e,i)=>G.resolve(e).then((e=>r[i]={status:`fulfilled`,value:e}),(e=>r[i]={status:`rejected`,reason:e})).then((()=>--n||t(r)))))}))})),Ei.any&&typeof AggregateError<`u`&&Sr(G,`any`,(function(){let e=qr.apply(null,arguments).map(da);return new G(((t,n)=>{e.length===0&&n(AggregateError([]));let r=e.length,i=Array(r);e.forEach(((e,a)=>G.resolve(e).then((e=>t(e)),(e=>{i[a]=e,--r||n(AggregateError(i))}))))}))})));var na={awaits:0,echoes:0,id:0},ra=0,ia=[],aa=0,oa=0,sa=0;function ca(e,t,n,r){var i=W,a=Object.create(i);a.parent=i,a.ref=0,a.global=!1,a.id=++sa;var o=Li.env;a.env=Di?{Promise:G,PromiseProp:{value:G,configurable:!0,writable:!0},all:G.all,race:G.race,allSettled:G.allSettled,any:G.any,resolve:G.resolve,reject:G.reject,nthen:ya(o.nthen,a),gthen:ya(o.gthen,a)}:{},t&&gr(a,t),++i.ref,a.finalize=function(){--this.parent.ref||this.parent.finalize()};var s=ga(a,e,n,r);return a.ref===0&&a.finalize(),s}function la(){return na.id||(na.id=++ra),++na.awaits,na.echoes+=xi,na.id}function ua(){return!!na.awaits&&(--na.awaits==0&&(na.id=0),na.echoes=na.awaits*xi,!0)}function da(e){return na.echoes&&e&&e.constructor===Ei?(la(),e.then((e=>(ua(),e)),(e=>(ua(),Sa(e))))):e}function fa(e){++oa,na.echoes&&--na.echoes!=0||(na.echoes=na.id=0),ia.push(W),ma(e,!0)}function pa(){var e=ia[ia.length-1];ia.pop(),ma(e,!1)}function ma(e,t){var n=W;if((t?!na.echoes||aa++&&e===W:!aa||--aa&&e===W)||_a(t?fa.bind(null,e):pa),e!==W&&(W=e,n===Li&&(Li.env=ha()),Di)){var r=Li.env.Promise,i=e.env;Ci.then=i.nthen,r.prototype.then=i.gthen,(n.global||e.global)&&(Object.defineProperty(pr,"Promise",i.PromiseProp),r.all=i.all,r.race=i.race,r.resolve=i.resolve,r.reject=i.reject,i.allSettled&&(r.allSettled=i.allSettled),i.any&&(r.any=i.any))}}function ha(){var e=pr.Promise;return Di?{Promise:e,PromiseProp:Object.getOwnPropertyDescriptor(pr,`Promise`),all:e.all,race:e.race,allSettled:e.allSettled,any:e.any,resolve:e.resolve,reject:e.reject,nthen:Ci.then,gthen:e.prototype.then}:{}}function ga(e,t,n,r,i){var a=W;try{return ma(e,!0),t(n,r,i)}finally{ma(a,!1)}}function _a(e){Ti.call(Si,e)}function va(e,t,n,r){return typeof e==`function`?function(){var i=W;n&&la(),ma(t,!0);try{return e.apply(this,arguments)}finally{ma(i,!1),r&&_a(ua)}}:e}function ya(e,t){return function(n,r){return e.call(this,va(n,t),va(r,t))}}(``+Ti).indexOf(`[native code]`)===-1&&(la=ua=U);var ba=`unhandledrejection`;function xa(e,t){var n;try{n=t.onuncatched(e)}catch(e){}if(!1!==n)try{var r,i={promise:t,reason:e};if(pr.document&&document.createEvent?((r=document.createEvent(`Event`)).initEvent(ba,!0,!0),gr(r,i)):pr.CustomEvent&&gr(r=new CustomEvent(ba,{detail:i}),i),r&&pr.dispatchEvent&&(dispatchEvent(r),!pr.PromiseRejectionEvent&&pr.onunhandledrejection))try{pr.onunhandledrejection(r)}catch(e){}Yr&&r&&!r.defaultPrevented&&console.warn(`Unhandled rejection: ${e.stack||e}`)}catch(e){}}var Sa=G.reject;function Ca(e,t,n,r){if(e.idbdb&&(e._state.openComplete||W.letThrough||e._vip)){var i=e._createTransaction(t,n,e._dbSchema);try{i.create(),e._state.PR1398_maxLoop=3}catch(i){return i.name===ci.InvalidState&&e.isOpen()&&--e._state.PR1398_maxLoop>0?(console.warn(`Dexie: Need to reopen db`),e._close(),e.open().then((()=>Ca(e,t,n,r)))):Sa(i)}return i._promise(t,((e,t)=>ca((()=>(W.trans=i,r(e,t,i)))))).then((e=>i._completion.then((()=>e))))}if(e._state.openComplete)return Sa(new H.DatabaseClosed(e._state.dbOpenError));if(!e._state.isBeingOpened){if(!e._options.autoOpen)return Sa(new H.DatabaseClosed);e.open().catch(U)}return e._state.dbReadyPromise.then((()=>Ca(e,t,n,r)))}var wa=`3.2.7`,Ta=``,Ea=-1/0,Da=`Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.`,Oa=`String expected.`,ka=[],Aa=typeof navigator<`u`&&/(MSIE|Trident|Edge)/.test(navigator.userAgent),ja=Aa,Ma=Aa,Na=e=>!/(dexie\.js|dexie\.min\.js)/.test(e),Pa=`__dbnames`,Fa=`readonly`,Ia=`readwrite`;function La(e,t){return e?t?function(){return e.apply(this,arguments)&&t.apply(this,arguments)}:e:t}var Ra={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function za(e){return typeof e!=`string`||/\./.test(e)?e=>e:t=>(t[e]===void 0&&e in t&&delete(t=Br(t))[e],t)}var Ba=class{_trans(e,t,n){let r=this._tx||W.trans,i=this.name;function a(e,n,r){if(!r.schema[i])throw new H.NotFound(`Table `+i+` not part of transaction`);return t(r.idbtrans,r)}let o=Zi();try{return r&&r.db===this.db?r===W.trans?r._promise(e,a,n):ca((()=>r._promise(e,a,n)),{trans:r,transless:W.transless||W}):Ca(this.db,e,[this.name],a)}finally{o&&Qi()}}get(e,t){return e&&e.constructor===Object?this.where(e).first(t):this._trans(`readonly`,(t=>this.core.get({trans:t,key:e}).then((e=>this.hook.reading.fire(e))))).then(t)}where(e){if(typeof e==`string`)return new this.db.WhereClause(this,e);if(hr(e))return new this.db.WhereClause(this,`[${e.join(`+`)}]`);let t=mr(e);if(t.length===1)return this.where(t[0]).equals(e[t[0]]);let n=this.schema.indexes.concat(this.schema.primKey).filter((e=>{if(e.compound&&t.every((t=>e.keyPath.indexOf(t)>=0))){for(let n=0;n<t.length;++n)if(t.indexOf(e.keyPath[n])===-1)return!1;return!0}return!1})).sort(((e,t)=>e.keyPath.length-t.keyPath.length))[0];if(n&&this.db._maxKey!==Ta){let r=n.keyPath.slice(0,t.length);return this.where(r).equals(r.map((t=>e[t])))}!n&&Yr&&console.warn(`The query ${JSON.stringify(e)} on ${this.name} would benefit of a compound index [${t.join(`+`)}]`);let{idxByName:r}=this.schema,i=this.db._deps.indexedDB;function a(e,t){try{return i.cmp(e,t)===0}catch(e){return!1}}let[o,s]=t.reduce((([t,n],i)=>{let o=r[i],s=e[i];return[t||o,t||!o?La(n,o&&o.multi?e=>{let t=Mr(e,i);return hr(t)&&t.some((e=>a(s,e)))}:e=>a(s,Mr(e,i))):n]}),[null,null]);return o?this.where(o.name).equals(e[o.keyPath]).filter(s):n?this.filter(s):this.where(t).equals(``)}filter(e){return this.toCollection().and(e)}count(e){return this.toCollection().count(e)}offset(e){return this.toCollection().offset(e)}limit(e){return this.toCollection().limit(e)}each(e){return this.toCollection().each(e)}toArray(e){return this.toCollection().toArray(e)}toCollection(){return new this.db.Collection(new this.db.WhereClause(this))}orderBy(e){return new this.db.Collection(new this.db.WhereClause(this,hr(e)?`[${e.join(`+`)}]`:e))}reverse(){return this.toCollection().reverse()}mapToClass(e){this.schema.mappedClass=e;let t=t=>{if(!t)return t;let n=Object.create(e.prototype);for(var r in t)if(yr(t,r))try{n[r]=t[r]}catch(e){}return n};return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=t,this.hook(`reading`,t),e}defineClass(){return this.mapToClass((function(e){gr(this,e)}))}add(e,t){let{auto:n,keyPath:r}=this.schema.primKey,i=e;return r&&n&&(i=za(r)(e)),this._trans(`readwrite`,(e=>this.core.mutate({trans:e,type:`add`,keys:t==null?null:[t],values:[i]}))).then((e=>e.numFailures?G.reject(e.failures[0]):e.lastResult)).then((t=>{if(r)try{Nr(e,r,t)}catch(e){}return t}))}update(e,t){if(typeof e!=`object`||hr(e))return this.where(`:id`).equals(e).modify(t);{let n=Mr(e,this.schema.primKey.keyPath);if(n===void 0)return Sa(new H.InvalidArgument(`Given object does not contain its primary key`));try{typeof t==`function`?t(e,{value:e,primKey:n}):mr(t).forEach((n=>{Nr(e,n,t[n])}))}catch(e){}return this.where(`:id`).equals(n).modify(t)}}put(e,t){let{auto:n,keyPath:r}=this.schema.primKey,i=e;return r&&n&&(i=za(r)(e)),this._trans(`readwrite`,(e=>this.core.mutate({trans:e,type:`put`,values:[i],keys:t==null?null:[t]}))).then((e=>e.numFailures?G.reject(e.failures[0]):e.lastResult)).then((t=>{if(r)try{Nr(e,r,t)}catch(e){}return t}))}delete(e){return this._trans(`readwrite`,(t=>this.core.mutate({trans:t,type:`delete`,keys:[e]}))).then((e=>e.numFailures?G.reject(e.failures[0]):void 0))}clear(){return this._trans(`readwrite`,(e=>this.core.mutate({trans:e,type:`deleteRange`,range:Ra}))).then((e=>e.numFailures?G.reject(e.failures[0]):void 0))}bulkGet(e){return this._trans(`readonly`,(t=>this.core.getMany({keys:e,trans:t}).then((e=>e.map((e=>this.hook.reading.fire(e)))))))}bulkAdd(e,t,n){let r=Array.isArray(t)?t:void 0,i=(n=n||(r?void 0:t))?n.allKeys:void 0;return this._trans(`readwrite`,(t=>{let{auto:n,keyPath:a}=this.schema.primKey;if(a&&r)throw new H.InvalidArgument(`bulkAdd(): keys argument invalid on tables with inbound keys`);if(r&&r.length!==e.length)throw new H.InvalidArgument(`Arguments objects and keys must have the same length`);let o=e.length,s=a&&n?e.map(za(a)):e;return this.core.mutate({trans:t,type:`add`,keys:r,values:s,wantResults:i}).then((({numFailures:e,results:t,lastResult:n,failures:r})=>{if(e===0)return i?t:n;throw new si(`${this.name}.bulkAdd(): ${e} of ${o} operations failed`,r)}))}))}bulkPut(e,t,n){let r=Array.isArray(t)?t:void 0,i=(n=n||(r?void 0:t))?n.allKeys:void 0;return this._trans(`readwrite`,(t=>{let{auto:n,keyPath:a}=this.schema.primKey;if(a&&r)throw new H.InvalidArgument(`bulkPut(): keys argument invalid on tables with inbound keys`);if(r&&r.length!==e.length)throw new H.InvalidArgument(`Arguments objects and keys must have the same length`);let o=e.length,s=a&&n?e.map(za(a)):e;return this.core.mutate({trans:t,type:`put`,keys:r,values:s,wantResults:i}).then((({numFailures:e,results:t,lastResult:n,failures:r})=>{if(e===0)return i?t:n;throw new si(`${this.name}.bulkPut(): ${e} of ${o} operations failed`,r)}))}))}bulkDelete(e){let t=e.length;return this._trans(`readwrite`,(t=>this.core.mutate({trans:t,type:`delete`,keys:e}))).then((({numFailures:e,lastResult:n,failures:r})=>{if(e===0)return n;throw new si(`${this.name}.bulkDelete(): ${e} of ${t} operations failed`,r)}))}};function Va(e){var t={},n=function(n,r){if(r){for(var i=arguments.length,a=Array(i-1);--i;)a[i-1]=arguments[i];return t[n].subscribe.apply(null,a),e}if(typeof n==`string`)return t[n]};n.addEventType=a;for(var r=1,i=arguments.length;r<i;++r)a(arguments[r]);return n;function a(e,r,i){if(typeof e!=`object`){var o;r||(r=vi),i||(i=U);var s={subscribers:[],fire:i,subscribe:function(e){s.subscribers.indexOf(e)===-1&&(s.subscribers.push(e),s.fire=r(s.fire,e))},unsubscribe:function(e){s.subscribers=s.subscribers.filter((function(t){return t!==e})),s.fire=s.subscribers.reduce(r,i)}};return t[e]=n[e]=s,s}mr(o=e).forEach((function(e){var t=o[e];if(hr(t))a(e,o[e][0],o[e][1]);else{if(t!==`asap`)throw new H.InvalidArgument(`Invalid event config`);var n=a(e,fi,(function(){for(var e=arguments.length,t=Array(e);e--;)t[e]=arguments[e];n.subscribers.forEach((function(e){Ar((function(){e.apply(null,t)}))}))}))}}))}}function Ha(e,t){return Cr(t).from({prototype:e}),t}function Ua(e,t){return!(e.filter||e.algorithm||e.or)&&(t?e.justLimit:!e.replayFilter)}function Wa(e,t){e.filter=La(e.filter,t)}function Ga(e,t,n){var r=e.replayFilter;e.replayFilter=r?()=>La(r(),t()):t,e.justLimit=n&&!r}function Ka(e,t){if(e.isPrimKey)return t.primaryKey;let n=t.getIndexByKeyPath(e.index);if(!n)throw new H.Schema(`KeyPath `+e.index+` on object store `+t.name+` is not indexed`);return n}function qa(e,t,n){let r=Ka(e,t.schema);return t.openCursor({trans:n,values:!e.keysOnly,reverse:e.dir===`prev`,unique:!!e.unique,query:{index:r,range:e.range}})}function Ja(e,t,n,r){let i=e.replayFilter?La(e.filter,e.replayFilter()):e.filter;if(e.or){let a={},o=(e,n,r)=>{if(!i||i(n,r,(e=>n.stop(e)),(e=>n.fail(e)))){var o=n.primaryKey,s=``+o;s===`[object ArrayBuffer]`&&(s=``+new Uint8Array(o)),yr(a,s)||(a[s]=!0,t(e,n,r))}};return Promise.all([e.or._iterate(o,n),Ya(qa(e,r,n),e.algorithm,o,!e.keysOnly&&e.valueMapper)])}return Ya(qa(e,r,n),La(e.algorithm,i),t,!e.keysOnly&&e.valueMapper)}function Ya(e,t,n,r){var i=ta(r?(e,t,i)=>n(r(e),t,i):n);return e.then((e=>{if(e)return e.start((()=>{var n=()=>e.continue();t&&!t(e,(e=>n=e),(t=>{e.stop(t),n=U}),(t=>{e.fail(t),n=U}))||i(e.value,e,(e=>n=e)),n()}))}))}function Xa(e,t){try{let n=Za(e),r=Za(t);if(n!==r)return n===`Array`?1:r===`Array`?-1:n===`binary`?1:r===`binary`?-1:n===`string`?1:r===`string`?-1:n===`Date`?1:r===`Date`?-1:NaN;switch(n){case`number`:case`Date`:case`string`:return e>t?1:e<t?-1:0;case`binary`:return function(e,t){let n=e.length,r=t.length,i=n<r?n:r;for(let n=0;n<i;++n)if(e[n]!==t[n])return e[n]<t[n]?-1:1;return n===r?0:n<r?-1:1}(Qa(e),Qa(t));case`Array`:return function(e,t){let n=e.length,r=t.length,i=n<r?n:r;for(let n=0;n<i;++n){let r=Xa(e[n],t[n]);if(r!==0)return r}return n===r?0:n<r?-1:1}(e,t)}}catch(e){}return NaN}function Za(e){let t=typeof e;if(t!==`object`)return t;if(ArrayBuffer.isView(e))return`binary`;let n=Ur(e);return n===`ArrayBuffer`?`binary`:n}function Qa(e){return e instanceof Uint8Array?e:ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):new Uint8Array(e)}var $a=class{_read(e,t){var n=this._ctx;return n.error?n.table._trans(null,Sa.bind(null,n.error)):n.table._trans(`readonly`,e).then(t)}_write(e){var t=this._ctx;return t.error?t.table._trans(null,Sa.bind(null,t.error)):t.table._trans(`readwrite`,e,`locked`)}_addAlgorithm(e){var t=this._ctx;t.algorithm=La(t.algorithm,e)}_iterate(e,t){return Ja(this._ctx,e,t,this._ctx.table.core)}clone(e){var t=Object.create(this.constructor.prototype),n=Object.create(this._ctx);return e&&gr(n,e),t._ctx=n,t}raw(){return this._ctx.valueMapper=null,this}each(e){var t=this._ctx;return this._read((n=>Ja(t,e,n,t.table.core)))}count(e){return this._read((e=>{let t=this._ctx,n=t.table.core;if(Ua(t,!0))return n.count({trans:e,query:{index:Ka(t,n.schema),range:t.range}}).then((e=>Math.min(e,t.limit)));var r=0;return Ja(t,(()=>(++r,!1)),e,n).then((()=>r))})).then(e)}sortBy(e,t){let n=e.split(`.`).reverse(),r=n[0],i=n.length-1;function a(e,t){return t?a(e[n[t]],t-1):e[r]}var o=this._ctx.dir===`next`?1:-1;function s(e,t){var n=a(e,i),r=a(t,i);return n<r?-o:n>r?o:0}return this.toArray((function(e){return e.sort(s)})).then(t)}toArray(e){return this._read((e=>{var t=this._ctx;if(t.dir===`next`&&Ua(t,!0)&&t.limit>0){let{valueMapper:n}=t,r=Ka(t,t.table.core.schema);return t.table.core.query({trans:e,limit:t.limit,values:!0,query:{index:r,range:t.range}}).then((({result:e})=>n?e.map(n):e))}{let n=[];return Ja(t,(e=>n.push(e)),e,t.table.core).then((()=>n))}}),e)}offset(e){var t=this._ctx;return e<=0||(t.offset+=e,Ua(t)?Ga(t,(()=>{var t=e;return(e,n)=>t===0||(t===1?(--t,!1):(n((()=>{e.advance(t),t=0})),!1))})):Ga(t,(()=>{var t=e;return()=>--t<0}))),this}limit(e){return this._ctx.limit=Math.min(this._ctx.limit,e),Ga(this._ctx,(()=>{var t=e;return function(e,n,r){return--t<=0&&n(r),t>=0}}),!0),this}until(e,t){return Wa(this._ctx,(function(n,r,i){return!e(n.value)||(r(i),t)})),this}first(e){return this.limit(1).toArray((function(e){return e[0]})).then(e)}last(e){return this.reverse().first(e)}filter(e){var t,n;return Wa(this._ctx,(function(t){return e(t.value)})),t=this._ctx,n=e,t.isMatch=La(t.isMatch,n),this}and(e){return this.filter(e)}or(e){return new this.db.WhereClause(this._ctx.table,e,this)}reverse(){return this._ctx.dir=this._ctx.dir===`prev`?`next`:`prev`,this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this}desc(){return this.reverse()}eachKey(e){var t=this._ctx;return t.keysOnly=!t.isMatch,this.each((function(t,n){e(n.key,n)}))}eachUniqueKey(e){return this._ctx.unique=`unique`,this.eachKey(e)}eachPrimaryKey(e){var t=this._ctx;return t.keysOnly=!t.isMatch,this.each((function(t,n){e(n.primaryKey,n)}))}keys(e){var t=this._ctx;t.keysOnly=!t.isMatch;var n=[];return this.each((function(e,t){n.push(t.key)})).then((function(){return n})).then(e)}primaryKeys(e){var t=this._ctx;if(t.dir===`next`&&Ua(t,!0)&&t.limit>0)return this._read((e=>{var n=Ka(t,t.table.core.schema);return t.table.core.query({trans:e,values:!1,limit:t.limit,query:{index:n,range:t.range}})})).then((({result:e})=>e)).then(e);t.keysOnly=!t.isMatch;var n=[];return this.each((function(e,t){n.push(t.primaryKey)})).then((function(){return n})).then(e)}uniqueKeys(e){return this._ctx.unique=`unique`,this.keys(e)}firstKey(e){return this.limit(1).keys((function(e){return e[0]})).then(e)}lastKey(e){return this.reverse().firstKey(e)}distinct(){var e=this._ctx,t=e.index&&e.table.schema.idxByName[e.index];if(!t||!t.multi)return this;var n={};return Wa(this._ctx,(function(e){var t=e.primaryKey.toString(),r=yr(n,t);return n[t]=!0,!r})),this}modify(e){var t=this._ctx;return this._write((n=>{var r;if(typeof e==`function`)r=e;else{var i=mr(e),a=i.length;r=function(t){for(var n=!1,r=0;r<a;++r){var o=i[r],s=e[o];Mr(t,o)!==s&&(Nr(t,o,s),n=!0)}return n}}let o=t.table.core,{outbound:s,extractKey:c}=o.schema.primaryKey,l=this.db._options.modifyChunkSize||200,u=[],d=0,f=[],p=(e,t)=>{let{failures:n,numFailures:r}=t;d+=e-r;for(let e of mr(n))u.push(n[e])};return this.clone().primaryKeys().then((i=>{let a=u=>{let d=Math.min(l,i.length-u);return o.getMany({trans:n,keys:i.slice(u,u+d),cache:`immutable`}).then((f=>{let m=[],h=[],g=s?[]:null,_=[];for(let e=0;e<d;++e){let t=f[e],n={value:Br(t),primKey:i[u+e]};!1!==r.call(n,n.value,n)&&(n.value==null?_.push(i[u+e]):s||Xa(c(t),c(n.value))===0?(h.push(n.value),s&&g.push(i[u+e])):(_.push(i[u+e]),m.push(n.value)))}let v=Ua(t)&&t.limit===1/0&&(typeof e!=`function`||e===eo)&&{index:t.index,range:t.range};return Promise.resolve(m.length>0&&o.mutate({trans:n,type:`add`,values:m}).then((e=>{for(let t in e.failures)_.splice(parseInt(t),1);p(m.length,e)}))).then((()=>(h.length>0||v&&typeof e==`object`)&&o.mutate({trans:n,type:`put`,keys:g,values:h,criteria:v,changeSpec:typeof e!=`function`&&e}).then((e=>p(h.length,e))))).then((()=>(_.length>0||v&&e===eo)&&o.mutate({trans:n,type:`delete`,keys:_,criteria:v}).then((e=>p(_.length,e))))).then((()=>i.length>u+d&&a(u+l)))}))};return a(0).then((()=>{if(u.length>0)throw new oi(`Error modifying one or more objects`,u,d,f);return i.length}))}))}))}delete(){var e=this._ctx,t=e.range;return Ua(e)&&(e.isPrimKey&&!Ma||t.type===3)?this._write((n=>{let{primaryKey:r}=e.table.core.schema,i=t;return e.table.core.count({trans:n,query:{index:r,range:i}}).then((t=>e.table.core.mutate({trans:n,type:`deleteRange`,range:i}).then((({failures:e,lastResult:n,results:r,numFailures:i})=>{if(i)throw new oi(`Could not delete some values`,Object.keys(e).map((t=>e[t])),t-i);return t-i}))))})):this.modify(eo)}},eo=(e,t)=>t.value=null;function to(e,t){return e<t?-1:e===t?0:1}function no(e,t){return e>t?-1:e===t?0:1}function ro(e,t,n){var r=e instanceof lo?new e.Collection(e):e;return r._ctx.error=n?new n(t):TypeError(t),r}function io(e){return new e.Collection(e,(()=>co(``))).limit(0)}function ao(e,t,n,r,i,a){for(var o=Math.min(e.length,r.length),s=-1,c=0;c<o;++c){var l=t[c];if(l!==r[c])return i(e[c],n[c])<0?e.substr(0,c)+n[c]+n.substr(c+1):i(e[c],r[c])<0?e.substr(0,c)+r[c]+n.substr(c+1):s>=0?e.substr(0,s)+t[s]+n.substr(s+1):null;i(e[c],l)<0&&(s=c)}return o<r.length&&a===`next`?e+n.substr(e.length):o<e.length&&a===`prev`?e.substr(0,n.length):s<0?null:e.substr(0,s)+r[s]+n.substr(s+1)}function oo(e,t,n,r){var i,a,o,s,c,l,u,d=n.length;if(!n.every((e=>typeof e==`string`)))return ro(e,Oa);function f(e){i=function(e){return e===`next`?e=>e.toUpperCase():e=>e.toLowerCase()}(e),a=function(e){return e===`next`?e=>e.toLowerCase():e=>e.toUpperCase()}(e),o=e===`next`?to:no;var t=n.map((function(e){return{lower:a(e),upper:i(e)}})).sort((function(e,t){return o(e.lower,t.lower)}));s=t.map((function(e){return e.upper})),c=t.map((function(e){return e.lower})),l=e,u=e===`next`?``:r}f(`next`);var p=new e.Collection(e,(()=>so(s[0],c[d-1]+r)));p._ondirectionchange=function(e){f(e)};var m=0;return p._addAlgorithm((function(e,n,r){var i=e.key;if(typeof i!=`string`)return!1;var f=a(i);if(t(f,c,m))return!0;for(var p=null,h=m;h<d;++h){var g=ao(i,f,s[h],c[h],o,l);g===null&&p===null?m=h+1:(p===null||o(p,g)>0)&&(p=g)}return n(p===null?r:function(){e.continue(p+u)}),!1})),p}function so(e,t,n,r){return{type:2,lower:e,upper:t,lowerOpen:n,upperOpen:r}}function co(e){return{type:1,lower:e,upper:e}}var lo=class{get Collection(){return this._ctx.table.db.Collection}between(e,t,n,r){n=!1!==n,r=!0===r;try{return this._cmp(e,t)>0||this._cmp(e,t)===0&&(n||r)&&(!n||!r)?io(this):new this.Collection(this,(()=>so(e,t,!n,!r)))}catch(e){return ro(this,Da)}}equals(e){return e==null?ro(this,Da):new this.Collection(this,(()=>co(e)))}above(e){return e==null?ro(this,Da):new this.Collection(this,(()=>so(e,void 0,!0)))}aboveOrEqual(e){return e==null?ro(this,Da):new this.Collection(this,(()=>so(e,void 0,!1)))}below(e){return e==null?ro(this,Da):new this.Collection(this,(()=>so(void 0,e,!1,!0)))}belowOrEqual(e){return e==null?ro(this,Da):new this.Collection(this,(()=>so(void 0,e)))}startsWith(e){return typeof e==`string`?this.between(e,e+Ta,!0,!0):ro(this,Oa)}startsWithIgnoreCase(e){return e===``?this.startsWith(e):oo(this,((e,t)=>e.indexOf(t[0])===0),[e],Ta)}equalsIgnoreCase(e){return oo(this,((e,t)=>e===t[0]),[e],``)}anyOfIgnoreCase(){var e=qr.apply(Kr,arguments);return e.length===0?io(this):oo(this,((e,t)=>t.indexOf(e)!==-1),e,``)}startsWithAnyOfIgnoreCase(){var e=qr.apply(Kr,arguments);return e.length===0?io(this):oo(this,((e,t)=>t.some((t=>e.indexOf(t)===0))),e,Ta)}anyOf(){let e=qr.apply(Kr,arguments),t=this._cmp;try{e.sort(t)}catch(e){return ro(this,Da)}if(e.length===0)return io(this);let n=new this.Collection(this,(()=>so(e[0],e[e.length-1])));n._ondirectionchange=n=>{t=n===`next`?this._ascending:this._descending,e.sort(t)};let r=0;return n._addAlgorithm(((n,i,a)=>{let o=n.key;for(;t(o,e[r])>0;)if(++r,r===e.length)return i(a),!1;return t(o,e[r])===0||(i((()=>{n.continue(e[r])})),!1)})),n}notEqual(e){return this.inAnyRange([[Ea,e],[e,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})}noneOf(){let e=qr.apply(Kr,arguments);if(e.length===0)return new this.Collection(this);try{e.sort(this._ascending)}catch(e){return ro(this,Da)}let t=e.reduce(((e,t)=>e?e.concat([[e[e.length-1][1],t]]):[[Ea,t]]),null);return t.push([e[e.length-1],this.db._maxKey]),this.inAnyRange(t,{includeLowers:!1,includeUppers:!1})}inAnyRange(e,t){let n=this._cmp,r=this._ascending,i=this._descending,a=this._min,o=this._max;if(e.length===0)return io(this);if(!e.every((e=>e[0]!==void 0&&e[1]!==void 0&&r(e[0],e[1])<=0)))return ro(this,`First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower`,H.InvalidArgument);let s=!t||!1!==t.includeLowers,c=t&&!0===t.includeUppers,l,u=r;function d(e,t){return u(e[0],t[0])}try{l=e.reduce((function(e,t){let r=0,i=e.length;for(;r<i;++r){let i=e[r];if(n(t[0],i[1])<0&&n(t[1],i[0])>0){i[0]=a(i[0],t[0]),i[1]=o(i[1],t[1]);break}}return r===i&&e.push(t),e}),[]),l.sort(d)}catch(e){return ro(this,Da)}let f=0,p=c?e=>r(e,l[f][1])>0:e=>r(e,l[f][1])>=0,m=s?e=>i(e,l[f][0])>0:e=>i(e,l[f][0])>=0,h=p,g=new this.Collection(this,(()=>so(l[0][0],l[l.length-1][1],!s,!c)));return g._ondirectionchange=e=>{e===`next`?(h=p,u=r):(h=m,u=i),l.sort(d)},g._addAlgorithm(((e,t,n)=>{for(var i=e.key;h(i);)if(++f,f===l.length)return t(n),!1;return!!function(e){return!p(e)&&!m(e)}(i)||(this._cmp(i,l[f][1])===0||this._cmp(i,l[f][0])===0||t((()=>{u===r?e.continue(l[f][0]):e.continue(l[f][1])})),!1)})),g}startsWithAnyOf(){let e=qr.apply(Kr,arguments);return e.every((e=>typeof e==`string`))?e.length===0?io(this):this.inAnyRange(e.map((e=>[e,e+Ta]))):ro(this,`startsWithAnyOf() only works with strings`)}};function uo(e){return ta((function(t){return fo(t),e(t.target.error),!1}))}function fo(e){e.stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault()}var po=`storagemutated`,mo=`x-storagemutated-1`,ho=Va(null,po),go=class{_lock(){return kr(!W.global),++this._reculock,this._reculock!==1||W.global||(W.lockOwnerFor=this),this}_unlock(){if(kr(!W.global),--this._reculock==0)for(W.global||(W.lockOwnerFor=null);this._blockedFuncs.length>0&&!this._locked();){var e=this._blockedFuncs.shift();try{ga(e[1],e[0])}catch(e){}}return this}_locked(){return this._reculock&&W.lockOwnerFor!==this}create(e){if(!this.mode)return this;let t=this.db.idbdb,n=this.db._state.dbOpenError;if(kr(!this.idbtrans),!e&&!t)switch(n&&n.name){case`DatabaseClosedError`:throw new H.DatabaseClosed(n);case`MissingAPIError`:throw new H.MissingAPI(n.message,n);default:throw new H.OpenFailed(n)}if(!this.active)throw new H.TransactionInactive;return kr(this._completion._state===null),(e=this.idbtrans=e||(this.db.core?this.db.core.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}):t.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}))).onerror=ta((t=>{fo(t),this._reject(e.error)})),e.onabort=ta((t=>{fo(t),this.active&&this._reject(new H.Abort(e.error)),this.active=!1,this.on(`abort`).fire(t)})),e.oncomplete=ta((()=>{this.active=!1,this._resolve(),`mutatedParts`in e&&ho.storagemutated.fire(e.mutatedParts)})),this}_promise(e,t,n){if(e===`readwrite`&&this.mode!==`readwrite`)return Sa(new H.ReadOnly(`Transaction is readonly`));if(!this.active)return Sa(new H.TransactionInactive);if(this._locked())return new G(((r,i)=>{this._blockedFuncs.push([()=>{this._promise(e,t,n).then(r,i)},W])}));if(n)return ca((()=>{var e=new G(((e,n)=>{this._lock();let r=t(e,n,this);r&&r.then&&r.then(e,n)}));return e.finally((()=>this._unlock())),e._lib=!0,e}));var r=new G(((e,n)=>{var r=t(e,n,this);r&&r.then&&r.then(e,n)}));return r._lib=!0,r}_root(){return this.parent?this.parent._root():this}waitFor(e){var t=this._root();let n=G.resolve(e);if(t._waitingFor)t._waitingFor=t._waitingFor.then((()=>n));else{t._waitingFor=n,t._waitingQueue=[];var r=t.idbtrans.objectStore(t.storeNames[0]);(function e(){for(++t._spinCount;t._waitingQueue.length;)t._waitingQueue.shift()();t._waitingFor&&(r.get(-1/0).onsuccess=e)})()}var i=t._waitingFor;return new G(((e,r)=>{n.then((n=>t._waitingQueue.push(ta(e.bind(null,n)))),(e=>t._waitingQueue.push(ta(r.bind(null,e))))).finally((()=>{t._waitingFor===i&&(t._waitingFor=null)}))}))}abort(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new H.Abort))}table(e){let t=this._memoizedTables||(this._memoizedTables={});if(yr(t,e))return t[e];let n=this.schema[e];if(!n)throw new H.NotFound(`Table `+e+` not part of transaction`);let r=new this.db.Table(e,n,this);return r.core=this.db.core.table(e),t[e]=r,r}};function _o(e,t,n,r,i,a,o){return{name:e,keyPath:t,unique:n,multi:r,auto:i,compound:a,src:(n&&!o?`&`:``)+(r?`*`:``)+(i?`++`:``)+vo(t)}}function vo(e){return typeof e==`string`?e:e?`[`+[].join.call(e,`+`)+`]`:``}function yo(e,t,n){return{name:e,primKey:t,indexes:n,mappedClass:null,idxByName:jr(n,(e=>[e.name,e]))}}var bo=e=>{try{return e.only([[]]),bo=()=>[[]],[[]]}catch(e){return bo=()=>Ta,Ta}};function xo(e){return e==null?()=>{}:typeof e==`string`?function(e){return e.split(`.`).length===1?t=>t[e]:t=>Mr(t,e)}(e):t=>Mr(t,e)}function So(e){return[].slice.call(e)}var Co=0;function wo(e){return e==null?`:id`:typeof e==`string`?e:`[${e.join(`+`)}]`}function To(e,t,n){function r(e){if(e.type===3)return null;if(e.type===4)throw Error(`Cannot convert never type to IDBKeyRange`);let{lower:n,upper:r,lowerOpen:i,upperOpen:a}=e;return n===void 0?r===void 0?null:t.upperBound(r,!!a):r===void 0?t.lowerBound(n,!!i):t.bound(n,r,!!i,!!a)}let{schema:i,hasGetAll:a}=function(e,t){let n=So(e.objectStoreNames);return{schema:{name:e.name,tables:n.map((e=>t.objectStore(e))).map((e=>{let{keyPath:t,autoIncrement:n}=e,r=hr(t),i=t==null,a={},o={name:e.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:i,compound:r,keyPath:t,autoIncrement:n,unique:!0,extractKey:xo(t)},indexes:So(e.indexNames).map((t=>e.index(t))).map((e=>{let{name:t,unique:n,multiEntry:r,keyPath:i}=e,o={name:t,compound:hr(i),keyPath:i,unique:n,multiEntry:r,extractKey:xo(i)};return a[wo(i)]=o,o})),getIndexByKeyPath:e=>a[wo(e)]};return a[`:id`]=o.primaryKey,t!=null&&(a[wo(t)]=o.primaryKey),o}))},hasGetAll:n.length>0&&`getAll`in t.objectStore(n[0])&&!(typeof navigator<`u`&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604)}}(e,n),o=i.tables.map((e=>function(e){let t=e.name;return{name:t,schema:e,mutate:function({trans:e,type:n,keys:i,values:a,range:o}){return new Promise(((s,c)=>{s=ta(s);let l=e.objectStore(t),u=l.keyPath==null,d=n===`put`||n===`add`;if(!d&&n!==`delete`&&n!==`deleteRange`)throw Error(`Invalid operation type: `+n);let{length:f}=i||a||{length:1};if(i&&a&&i.length!==a.length)throw Error(`Given keys array must have same length as given values array.`);if(f===0)return s({numFailures:0,failures:{},results:[],lastResult:void 0});let p,m=[],h=[],g=0,_=e=>{++g,fo(e)};if(n===`deleteRange`){if(o.type===4)return s({numFailures:g,failures:h,results:[],lastResult:void 0});o.type===3?m.push(p=l.clear()):m.push(p=l.delete(r(o)))}else{let[e,t]=d?u?[a,i]:[a,null]:[i,null];if(d)for(let r=0;r<f;++r)m.push(p=t&&t[r]!==void 0?l[n](e[r],t[r]):l[n](e[r])),p.onerror=_;else for(let t=0;t<f;++t)m.push(p=l[n](e[t])),p.onerror=_}let v=e=>{let t=e.target.result;m.forEach(((e,t)=>e.error!=null&&(h[t]=e.error))),s({numFailures:g,failures:h,results:n===`delete`?i:m.map((e=>e.result)),lastResult:t})};p.onerror=e=>{_(e),v(e)},p.onsuccess=v}))},getMany:({trans:e,keys:n})=>new Promise(((r,i)=>{r=ta(r);let a=e.objectStore(t),o=n.length,s=Array(o),c,l=0,u=0,d=e=>{let t=e.target;s[t._pos]=t.result,++u===l&&r(s)},f=uo(i);for(let e=0;e<o;++e)n[e]!=null&&(c=a.get(n[e]),c._pos=e,c.onsuccess=d,c.onerror=f,++l);l===0&&r(s)})),get:({trans:e,key:n})=>new Promise(((r,i)=>{r=ta(r);let a=e.objectStore(t).get(n);a.onsuccess=e=>r(e.target.result),a.onerror=uo(i)})),query:function(e){return n=>new Promise(((i,a)=>{i=ta(i);let{trans:o,values:s,limit:c,query:l}=n,u=c===1/0?void 0:c,{index:d,range:f}=l,p=o.objectStore(t),m=d.isPrimaryKey?p:p.index(d.name),h=r(f);if(c===0)return i({result:[]});if(e){let e=s?m.getAll(h,u):m.getAllKeys(h,u);e.onsuccess=e=>i({result:e.target.result}),e.onerror=uo(a)}else{let e=0,t=s||!(`openKeyCursor`in m)?m.openCursor(h):m.openKeyCursor(h),n=[];t.onsuccess=r=>{let a=t.result;return a?(n.push(s?a.value:a.primaryKey),++e===c?i({result:n}):void a.continue()):i({result:n})},t.onerror=uo(a)}}))}(a),openCursor:function({trans:e,values:n,query:i,reverse:a,unique:o}){return new Promise(((s,c)=>{s=ta(s);let{index:l,range:u}=i,d=e.objectStore(t),f=l.isPrimaryKey?d:d.index(l.name),p=a?o?`prevunique`:`prev`:o?`nextunique`:`next`,m=n||!(`openKeyCursor`in f)?f.openCursor(r(u),p):f.openKeyCursor(r(u),p);m.onerror=uo(c),m.onsuccess=ta((t=>{let n=m.result;if(!n)return void s(null);n.___id=++Co,n.done=!1;let r=n.continue.bind(n),i=n.continuePrimaryKey;i&&(i=i.bind(n));let a=n.advance.bind(n),o=()=>{throw Error(`Cursor not stopped`)};n.trans=e,n.stop=n.continue=n.continuePrimaryKey=n.advance=()=>{throw Error(`Cursor not started`)},n.fail=ta(c),n.next=function(){let e=1;return this.start((()=>e--?this.continue():this.stop())).then((()=>this))},n.start=e=>{let t=new Promise(((e,t)=>{e=ta(e),m.onerror=uo(t),n.fail=t,n.stop=t=>{n.stop=n.continue=n.continuePrimaryKey=n.advance=o,e(t)}})),s=()=>{if(m.result)try{e()}catch(e){n.fail(e)}else n.done=!0,n.start=()=>{throw Error(`Cursor behind last entry`)},n.stop()};return m.onsuccess=ta((e=>{m.onsuccess=s,s()})),n.continue=r,n.continuePrimaryKey=i,n.advance=a,s(),t},s(n)}),c)}))},count({query:e,trans:n}){let{index:i,range:a}=e;return new Promise(((e,o)=>{let s=n.objectStore(t),c=i.isPrimaryKey?s:s.index(i.name),l=r(a),u=l?c.count(l):c.count();u.onsuccess=ta((t=>e(t.target.result))),u.onerror=uo(o)}))}}}(e))),s={};return o.forEach((e=>s[e.name]=e)),{stack:`dbcore`,transaction:e.transaction.bind(e),table(e){if(!s[e])throw Error(`Table '${e}' not found`);return s[e]},MIN_KEY:-1/0,MAX_KEY:bo(t),schema:i}}function Eo({_novip:e},t){let n=t.db;e.core=function(e,t,{IDBKeyRange:n,indexedDB:r},i){return{dbcore:function(e,t){return t.reduce(((e,{create:t})=>V(V({},e),t(e))),e)}(To(t,n,i),e.dbcore)}}(e._middlewares,n,e._deps,t).dbcore,e.tables.forEach((t=>{let n=t.name;e.core.schema.tables.some((e=>e.name===n))&&(t.core=e.core.table(n),e[n]instanceof e.Table&&(e[n].core=t.core))}))}function Do({_novip:e},t,n,r){n.forEach((n=>{let i=r[n];t.forEach((t=>{let r=Tr(t,n);(!r||`value`in r&&r.value===void 0)&&(t===e.Transaction.prototype||t instanceof e.Transaction?Sr(t,n,{get(){return this.table(n)},set(e){xr(this,n,{value:e,writable:!0,configurable:!0,enumerable:!0})}}):t[n]=new e.Table(n,i))}))}))}function Oo({_novip:e},t){t.forEach((t=>{for(let n in t)t[n]instanceof e.Table&&delete t[n]}))}function ko(e,t){return e._cfg.version-t._cfg.version}function Ao(e,t,n,r){let i=e._dbSchema,a=e._createTransaction(`readwrite`,e._storeNames,i);a.create(n),a._completion.catch(r);let o=a._reject.bind(a),s=W.transless||W;ca((()=>{W.trans=a,W.transless=s,t===0?(mr(i).forEach((e=>{Mo(n,e,i[e].primKey,i[e].indexes)})),Eo(e,n),G.follow((()=>e.on.populate.fire(a))).catch(o)):function({_novip:e},t,n,r){let i=[],a=e._versions,o=e._dbSchema=Po(e,e.idbdb,r),s=!1,c=a.filter((e=>e._cfg.version>=t));function l(){return i.length?G.resolve(i.shift()(n.idbtrans)).then(l):G.resolve()}return c.forEach((a=>{i.push((()=>{let i=o,c=a._cfg.dbschema;Fo(e,i,r),Fo(e,c,r),o=e._dbSchema=c;let l=jo(i,c);l.add.forEach((e=>{Mo(r,e[0],e[1].primKey,e[1].indexes)})),l.change.forEach((e=>{if(e.recreate)throw new H.Upgrade(`Not yet support for changing primary key`);{let t=r.objectStore(e.name);e.add.forEach((e=>No(t,e))),e.change.forEach((e=>{t.deleteIndex(e.name),No(t,e)})),e.del.forEach((e=>t.deleteIndex(e)))}}));let u=a._cfg.contentUpgrade;if(u&&a._cfg.version>t){Eo(e,r),n._memoizedTables={},s=!0;let t=Pr(c);l.del.forEach((e=>{t[e]=i[e]})),Oo(e,[e.Transaction.prototype]),Do(e,[e.Transaction.prototype],mr(t),t),n.schema=t;let a=Jr(u),o;a&&la();let d=G.follow((()=>{if(o=u(n),o&&a){var e=ua.bind(null,null);o.then(e,e)}}));return o&&typeof o.then==`function`?G.resolve(o):d.then((()=>o))}})),i.push((t=>{s&&ja||(function(e,t){[].slice.call(t.db.objectStoreNames).forEach((n=>e[n]==null&&t.db.deleteObjectStore(n)))})(a._cfg.dbschema,t),Oo(e,[e.Transaction.prototype]),Do(e,[e.Transaction.prototype],e._storeNames,e._dbSchema),n.schema=e._dbSchema}))})),l().then((()=>{var e,t=r;mr(e=o).forEach((n=>{t.db.objectStoreNames.contains(n)||Mo(t,n,e[n].primKey,e[n].indexes)}))}))}(e,t,a,n).catch(o)}))}function jo(e,t){let n={del:[],add:[],change:[]},r;for(r in e)t[r]||n.del.push(r);for(r in t){let i=e[r],a=t[r];if(i){let e={name:r,def:a,recreate:!1,del:[],add:[],change:[]};if(``+(i.primKey.keyPath||``)!=``+(a.primKey.keyPath||``)||i.primKey.auto!==a.primKey.auto&&!Aa)e.recreate=!0,n.change.push(e);else{let t=i.idxByName,r=a.idxByName,o;for(o in t)r[o]||e.del.push(o);for(o in r){let n=t[o],i=r[o];n?n.src!==i.src&&e.change.push(i):e.add.push(i)}(e.del.length>0||e.add.length>0||e.change.length>0)&&n.change.push(e)}}else n.add.push([r,a])}return n}function Mo(e,t,n,r){let i=e.db.createObjectStore(t,n.keyPath?{keyPath:n.keyPath,autoIncrement:n.auto}:{autoIncrement:n.auto});return r.forEach((e=>No(i,e))),i}function No(e,t){e.createIndex(t.name,t.keyPath,{unique:t.unique,multiEntry:t.multi})}function Po(e,t,n){let r={};return Dr(t.objectStoreNames,0).forEach((e=>{let t=n.objectStore(e),i=t.keyPath,a=_o(vo(i),i||``,!1,!1,!!t.autoIncrement,i&&typeof i!=`string`,!0),o=[];for(let e=0;e<t.indexNames.length;++e){let n=t.index(t.indexNames[e]);i=n.keyPath;var s=_o(n.name,i,!!n.unique,!!n.multiEntry,!1,i&&typeof i!=`string`,!1);o.push(s)}r[e]=yo(e,a,o)})),r}function Fo({_novip:e},t,n){let r=n.db.objectStoreNames;for(let i=0;i<r.length;++i){let a=r[i],o=n.objectStore(a);e._hasGetAll=`getAll`in o;for(let e=0;e<o.indexNames.length;++e){let n=o.indexNames[e],r=o.index(n).keyPath,i=typeof r==`string`?r:`[`+Dr(r).join(`+`)+`]`;if(t[a]){let e=t[a].idxByName[i];e&&(e.name=n,delete t[a].idxByName[i],t[a].idxByName[n]=e)}}}typeof navigator<`u`&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&pr.WorkerGlobalScope&&pr instanceof pr.WorkerGlobalScope&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604&&(e._hasGetAll=!1)}var Io=class{_parseStoresSpec(e,t){mr(e).forEach((n=>{if(e[n]!==null){var r=e[n].split(`,`).map(((e,t)=>{let n=(e=e.trim()).replace(/([&*]|\+\+)/g,``),r=/^\[/.test(n)?n.match(/^\[(.*)\]$/)[1].split(`+`):n;return _o(n,r||null,/\&/.test(e),/\*/.test(e),/\+\+/.test(e),hr(r),t===0)})),i=r.shift();if(i.multi)throw new H.Schema(`Primary key cannot be multi-valued`);r.forEach((e=>{if(e.auto)throw new H.Schema(`Only primary key can be marked as autoIncrement (++)`);if(!e.keyPath)throw new H.Schema(`Index must have a name and cannot be an empty string`)})),t[n]=yo(n,i,r)}}))}stores(e){let t=this.db;this._cfg.storesSource=this._cfg.storesSource?gr(this._cfg.storesSource,e):e;let n=t._versions,r={},i={};return n.forEach((e=>{gr(r,e._cfg.storesSource),i=e._cfg.dbschema={},e._parseStoresSpec(r,i)})),t._dbSchema=i,Oo(t,[t._allTables,t,t.Transaction.prototype]),Do(t,[t._allTables,t,t.Transaction.prototype,this._cfg.tables],mr(i),i),t._storeNames=mr(i),this}upgrade(e){return this._cfg.contentUpgrade=yi(this._cfg.contentUpgrade||U,e),this}};function Lo(e,t){let n=e._dbNamesDB;return n||(n=e._dbNamesDB=new os(Pa,{addons:[],indexedDB:e,IDBKeyRange:t}),n.version(1).stores({dbnames:`name`})),n.table(`dbnames`)}function Ro(e){return e&&typeof e.databases==`function`}function zo(e){return ca((function(){return W.letThrough=!0,e()}))}function Bo(){var e;return!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent)&&indexedDB.databases?new Promise((function(t){var n=function(){return indexedDB.databases().finally(t)};e=setInterval(n,100),n()})).finally((function(){return clearInterval(e)})):Promise.resolve()}function Vo(e){let t=e._state,{indexedDB:n}=e._deps;if(t.isBeingOpened||e.idbdb)return t.dbReadyPromise.then((()=>t.dbOpenError?Sa(t.dbOpenError):e));Yr&&(t.openCanceller._stackHolder=$r()),t.isBeingOpened=!0,t.dbOpenError=null,t.openComplete=!1;let r=t.openCanceller;function i(){if(t.openCanceller!==r)throw new H.DatabaseClosed(`db.open() was cancelled`)}let a=t.dbReadyResolve,o=null,s=!1,c=()=>new G(((r,a)=>{if(i(),!n)throw new H.MissingAPI;let c=e.name,l=t.autoSchema?n.open(c):n.open(c,Math.round(10*e.verno));if(!l)throw new H.MissingAPI;l.onerror=uo(a),l.onblocked=ta(e._fireOnBlocked),l.onupgradeneeded=ta((r=>{if(o=l.transaction,t.autoSchema&&!e._options.allowEmptyDB){l.onerror=fo,o.abort(),l.result.close();let e=n.deleteDatabase(c);e.onsuccess=e.onerror=ta((()=>{a(new H.NoSuchDatabase(`Database ${c} doesnt exist`))}))}else{o.onerror=uo(a);var i=r.oldVersion>2**62?0:r.oldVersion;s=i<1,e._novip.idbdb=l.result,Ao(e,i/10,o,a)}}),a),l.onsuccess=ta((()=>{o=null;let n=e._novip.idbdb=l.result,i=Dr(n.objectStoreNames);if(i.length>0)try{let r=n.transaction((a=i).length===1?a[0]:a,`readonly`);t.autoSchema?function({_novip:e},t,n){e.verno=t.version/10;let r=e._dbSchema=Po(0,t,n);e._storeNames=Dr(t.objectStoreNames,0),Do(e,[e._allTables],mr(r),r)}(e,n,r):(Fo(e,e._dbSchema,r),function(e,t){let n=jo(Po(0,e.idbdb,t),e._dbSchema);return!(n.add.length||n.change.some((e=>e.add.length||e.change.length)))}(e,r)||console.warn(`Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.`)),Eo(e,r)}catch(e){}var a;ka.push(e),n.onversionchange=ta((n=>{t.vcFired=!0,e.on(`versionchange`).fire(n)})),n.onclose=ta((t=>{e.on(`close`).fire(t)})),s&&function({indexedDB:e,IDBKeyRange:t},n){!Ro(e)&&n!==Pa&&Lo(e,t).put({name:n}).catch(U)}(e._deps,c),r()}),a)})).catch((e=>e&&e.name===`UnknownError`&&t.PR1398_maxLoop>0?(t.PR1398_maxLoop--,console.warn(`Dexie: Workaround for Chrome UnknownError on open()`),c()):G.reject(e)));return G.race([r,(typeof navigator>`u`?G.resolve():Bo()).then(c)]).then((()=>(i(),t.onReadyBeingFired=[],G.resolve(zo((()=>e.on.ready.fire(e.vip)))).then((function n(){if(t.onReadyBeingFired.length>0){let r=t.onReadyBeingFired.reduce(yi,U);return t.onReadyBeingFired=[],G.resolve(zo((()=>r(e.vip)))).then(n)}}))))).finally((()=>{t.onReadyBeingFired=null,t.isBeingOpened=!1})).then((()=>e)).catch((n=>{t.dbOpenError=n;try{o&&o.abort()}catch(e){}return r===t.openCanceller&&e._close(),Sa(n)})).finally((()=>{t.openComplete=!0,a()}))}function Ho(e){var t=t=>e.next(t),n=i(t),r=i((t=>e.throw(t)));function i(e){return t=>{var i=e(t),a=i.value;return i.done?a:a&&typeof a.then==`function`?a.then(n,r):hr(a)?Promise.all(a).then(n,r):n(a)}}return i(t)()}function Uo(e,t,n){var r=arguments.length;if(r<2)throw new H.InvalidArgument(`Too few arguments`);for(var i=Array(r-1);--r;)i[r-1]=arguments[r];return n=i.pop(),[e,Ir(i),n]}function Wo(e,t,n,r,i){return G.resolve().then((()=>{let a=W.transless||W,o=e._createTransaction(t,n,e._dbSchema,r),s={trans:o,transless:a};if(r)o.idbtrans=r.idbtrans;else try{o.create(),e._state.PR1398_maxLoop=3}catch(r){return r.name===ci.InvalidState&&e.isOpen()&&--e._state.PR1398_maxLoop>0?(console.warn(`Dexie: Need to reopen db`),e._close(),e.open().then((()=>Wo(e,t,n,null,i)))):Sa(r)}let c=Jr(i),l;c&&la();let u=G.follow((()=>{if(l=i.call(o,o),l){if(c){var e=ua.bind(null,null);l.then(e,e)}else typeof l.next==`function`&&typeof l.throw==`function`&&(l=Ho(l))}}),s);return(l&&typeof l.then==`function`?G.resolve(l).then((e=>o.active?e:Sa(new H.PrematureCommit(`Transaction committed too early. See http://bit.ly/2kdckMn`)))):u.then((()=>l))).then((e=>(r&&o._resolve(),o._completion.then((()=>e))))).catch((e=>(o._reject(e),Sa(e))))}))}function Go(e,t,n){let r=hr(e)?e.slice():[e];for(let e=0;e<n;++e)r.push(t);return r}var Ko={stack:`dbcore`,name:`VirtualIndexMiddleware`,level:1,create:function(e){return V(V({},e),{},{table(t){let n=e.table(t),{schema:r}=n,i={},a=[];function o(e,t,n){let r=wo(e),s=i[r]=i[r]||[],c=e==null?0:typeof e==`string`?1:e.length,l=t>0,u=V(V({},n),{},{isVirtual:l,keyTail:t,keyLength:c,extractKey:xo(e),unique:!l&&n.unique});return s.push(u),u.isPrimaryKey||a.push(u),c>1&&o(c===2?e[0]:e.slice(0,c-1),t+1,n),s.sort(((e,t)=>e.keyTail-t.keyTail)),u}let s=o(r.primaryKey.keyPath,0,r.primaryKey);i[`:id`]=[s];for(let e of r.indexes)o(e.keyPath,0,e);function c(t){let n=t.query.index;return n.isVirtual?V(V({},t),{},{query:{index:n,range:(r=t.query.range,i=n.keyTail,{type:r.type===1?2:r.type,lower:Go(r.lower,r.lowerOpen?e.MAX_KEY:e.MIN_KEY,i),lowerOpen:!0,upper:Go(r.upper,r.upperOpen?e.MIN_KEY:e.MAX_KEY,i),upperOpen:!0})}}):t;var r,i}return V(V({},n),{},{schema:V(V({},r),{},{primaryKey:s,indexes:a,getIndexByKeyPath:function(e){let t=i[wo(e)];return t&&t[0]}}),count:e=>n.count(c(e)),query:e=>n.query(c(e)),openCursor(t){let{keyTail:r,isVirtual:i,keyLength:a}=t.query.index;return i?n.openCursor(c(t)).then((n=>n&&function(n){return Object.create(n,{continue:{value:function(i){i==null?t.unique?n.continue(n.key.slice(0,a).concat(t.reverse?e.MIN_KEY:e.MAX_KEY,r)):n.continue():n.continue(Go(i,t.reverse?e.MAX_KEY:e.MIN_KEY,r))}},continuePrimaryKey:{value(t,i){n.continuePrimaryKey(Go(t,e.MAX_KEY,r),i)}},primaryKey:{get:()=>n.primaryKey},key:{get(){let e=n.key;return a===1?e[0]:e.slice(0,a)}},value:{get:()=>n.value}})}(n))):n.openCursor(t)}})}})}};function qo(e,t,n,r){return n=n||{},r=r||``,mr(e).forEach((i=>{if(yr(t,i)){var a=e[i],o=t[i];if(typeof a==`object`&&typeof o==`object`&&a&&o){let e=Ur(a);e===Ur(o)?e===`Object`?qo(a,o,n,r+i+`.`):a!==o&&(n[r+i]=t[i]):n[r+i]=t[i]}else a!==o&&(n[r+i]=t[i])}else n[r+i]=void 0})),mr(t).forEach((i=>{yr(e,i)||(n[r+i]=t[i])})),n}var Jo={stack:`dbcore`,name:`HooksMiddleware`,level:2,create:e=>V(V({},e),{},{table(t){let n=e.table(t),{primaryKey:r}=n.schema;return V(V({},n),{},{mutate(e){let i=W.trans,{deleting:a,creating:o,updating:s}=i.table(t).hook;switch(e.type){case`add`:if(o.fire===U)break;return i._promise(`readwrite`,(()=>c(e)),!0);case`put`:if(o.fire===U&&s.fire===U)break;return i._promise(`readwrite`,(()=>c(e)),!0);case`delete`:if(a.fire===U)break;return i._promise(`readwrite`,(()=>c(e)),!0);case`deleteRange`:if(a.fire===U)break;return i._promise(`readwrite`,(()=>function(e){return l(e.trans,e.range,1e4)}(e)),!0)}return n.mutate(e);function c(e){let t=W.trans,i=e.keys||function(e,t){return t.type===`delete`?t.keys:t.keys||t.values.map(e.extractKey)}(r,e);if(!i)throw Error(`Keys missing`);return(e=e.type===`add`||e.type===`put`?V(V({},e),{},{keys:i}):V({},e)).type!==`delete`&&(e.values=[...e.values]),e.keys&&(e.keys=[...e.keys]),function(e,t,n){return t.type===`add`?Promise.resolve([]):e.getMany({trans:t.trans,keys:n,cache:`immutable`})}(n,e,i).then((c=>{let l=i.map(((n,i)=>{let l=c[i],u={onerror:null,onsuccess:null};if(e.type===`delete`)a.fire.call(u,n,l,t);else if(e.type===`add`||l===void 0){let a=o.fire.call(u,n,e.values[i],t);n==null&&a!=null&&(n=a,e.keys[i]=n,r.outbound||Nr(e.values[i],r.keyPath,n))}else{let r=qo(l,e.values[i]),a=s.fire.call(u,r,n,l,t);if(a){let t=e.values[i];Object.keys(a).forEach((e=>{yr(t,e)?t[e]=a[e]:Nr(t,e,a[e])}))}}return u}));return n.mutate(e).then((({failures:t,results:n,numFailures:r,lastResult:a})=>{for(let r=0;r<i.length;++r){let a=n?n[r]:i[r],o=l[r];a==null?o.onerror&&o.onerror(t[r]):o.onsuccess&&o.onsuccess(e.type===`put`&&c[r]?e.values[r]:a)}return{failures:t,results:n,numFailures:r,lastResult:a}})).catch((e=>(l.forEach((t=>t.onerror&&t.onerror(e))),Promise.reject(e))))}))}function l(e,t,i){return n.query({trans:e,values:!1,query:{index:r,range:t},limit:i}).then((({result:n})=>c({type:`delete`,keys:n,trans:e}).then((r=>r.numFailures>0?Promise.reject(r.failures[0]):n.length<i?{failures:[],numFailures:0,lastResult:void 0}:l(e,V(V({},t),{},{lower:n[n.length-1],lowerOpen:!0}),i)))))}}})}})};function Yo(e,t,n){try{if(!t||t.keys.length<e.length)return null;let r=[];for(let i=0,a=0;i<t.keys.length&&a<e.length;++i)Xa(t.keys[i],e[a])===0&&(r.push(n?Br(t.values[i]):t.values[i]),++a);return r.length===e.length?r:null}catch(e){return null}}var Xo={stack:`dbcore`,level:-1,create:e=>({table:t=>{let n=e.table(t);return V(V({},n),{},{getMany:e=>{if(!e.cache)return n.getMany(e);let t=Yo(e.keys,e.trans._cache,e.cache===`clone`);return t?G.resolve(t):n.getMany(e).then((t=>(e.trans._cache={keys:e.keys,values:e.cache===`clone`?Br(t):t},t)))},mutate:e=>(e.type!==`add`&&(e.trans._cache=null),n.mutate(e))})}})};function Zo(e){return!(`from`in e)}var Qo=function(e,t){if(!this){let t=new Qo;return e&&`d`in e&&gr(t,e),t}gr(this,arguments.length?{d:1,from:e,to:arguments.length>1?t:e}:{d:0})};function $o(e,t,n){let r=Xa(t,n);if(isNaN(r))return;if(r>0)throw RangeError();if(Zo(e))return gr(e,{from:t,to:n,d:1});let i=e.l,a=e.r;if(Xa(n,e.from)<0)return i?$o(i,t,n):e.l={from:t,to:n,d:1,l:null,r:null},rs(e);if(Xa(t,e.to)>0)return a?$o(a,t,n):e.r={from:t,to:n,d:1,l:null,r:null},rs(e);Xa(t,e.from)<0&&(e.from=t,e.l=null,e.d=a?a.d+1:1),Xa(n,e.to)>0&&(e.to=n,e.r=null,e.d=e.l?e.l.d+1:1);let o=!e.r;i&&!e.l&&es(e,i),a&&o&&es(e,a)}function es(e,t){Zo(t)||function e(t,{from:n,to:r,l:i,r:a}){$o(t,n,r),i&&e(t,i),a&&e(t,a)}(e,t)}function ts(e,t){let n=ns(t),r=n.next();if(r.done)return!1;let i=r.value,a=ns(e),o=a.next(i.from),s=o.value;for(;!r.done&&!o.done;){if(Xa(s.from,i.to)<=0&&Xa(s.to,i.from)>=0)return!0;Xa(i.from,s.from)<0?i=(r=n.next(s.from)).value:s=(o=a.next(i.from)).value}return!1}function ns(e){let t=Zo(e)?null:{s:0,n:e};return{next(e){let n=arguments.length>0;for(;t;)switch(t.s){case 0:if(t.s=1,n)for(;t.n.l&&Xa(e,t.n.from)<0;)t={up:t,n:t.n.l,s:1};else for(;t.n.l;)t={up:t,n:t.n.l,s:1};case 1:if(t.s=2,!n||Xa(e,t.n.to)<=0)return{value:t.n,done:!1};case 2:if(t.n.r){t.s=3,t={up:t,n:t.n.r,s:0};continue}case 3:t=t.up}return{done:!0}}}}function rs(e){var t,n;let r=(((t=e.r)==null?void 0:t.d)||0)-(((n=e.l)==null?void 0:n.d)||0),i=r>1?`r`:r<-1?`l`:``;if(i){let t=i===`r`?`l`:`r`,n=V({},e),r=e[i];e.from=r.from,e.to=r.to,e[i]=r[i],n[i]=r[t],e[t]=n,n.d=is(n)}e.d=is(e)}function is({r:e,l:t}){return(e?t?Math.max(e.d,t.d):e.d:t?t.d:0)+1}br(Qo.prototype,{add(e){return es(this,e),this},addKey(e){return $o(this,e,e),this},addKeys(e){return e.forEach((e=>$o(this,e,e))),this},[Wr](){return ns(this)}});var as={stack:`dbcore`,level:0,create:e=>{let t=e.schema.name,n=new Qo(e.MIN_KEY,e.MAX_KEY);return V(V({},e),{},{table:r=>{let i=e.table(r),{schema:a}=i,{primaryKey:o}=a,{extractKey:s,outbound:c}=o,l=V(V({},i),{},{mutate:e=>{let o=e.trans,s=o.mutatedParts||(o.mutatedParts={}),c=e=>{let n=`idb://${t}/${r}/${e}`;return s[n]||(s[n]=new Qo)},l=c(``),u=c(`:dels`),{type:d}=e,[f,p]=e.type===`deleteRange`?[e.range]:e.type===`delete`?[e.keys]:e.values.length<50?[[],e.values]:[],m=e.trans._cache;return i.mutate(e).then((e=>{if(hr(f)){d!==`delete`&&(f=e.results),l.addKeys(f);let t=Yo(f,m);t||d===`add`||u.addKeys(f),(t||p)&&function(e,t,n,r){function i(t){let i=e(t.name||``);function a(e){return e==null?null:t.extractKey(e)}let o=e=>t.multiEntry&&hr(e)?e.forEach((e=>i.addKey(e))):i.addKey(e);(n||r).forEach(((e,t)=>{let i=n&&a(n[t]),s=r&&a(r[t]);Xa(i,s)!==0&&(i!=null&&o(i),s!=null&&o(s))}))}t.indexes.forEach(i)}(c,a,t,p)}else if(f){let e={from:f.lower,to:f.upper};u.add(e),l.add(e)}else l.add(n),u.add(n),a.indexes.forEach((e=>c(e.name).add(n)));return e}))}}),u=({query:{index:t,range:n}})=>{var r,i;return[t,new Qo((r=n.lower)==null?e.MIN_KEY:r,(i=n.upper)==null?e.MAX_KEY:i)]},d={get:e=>[o,new Qo(e.key)],getMany:e=>[o,new Qo().addKeys(e.keys)],count:u,query:u,openCursor:u};return mr(d).forEach((e=>{l[e]=function(a){let{subscr:o}=W;if(o){let l=e=>{let n=`idb://${t}/${r}/${e}`;return o[n]||(o[n]=new Qo)},u=l(``),f=l(`:dels`),[p,m]=d[e](a);if(l(p.name||``).add(m),!p.isPrimaryKey){if(e!==`count`){let t=e===`query`&&c&&a.values&&i.query(V(V({},a),{},{values:!1}));return i[e].apply(this,arguments).then((n=>{if(e===`query`){if(c&&a.values)return t.then((({result:e})=>(u.addKeys(e),n)));let e=a.values?n.result.map(s):n.result;a.values?u.addKeys(e):f.addKeys(e)}else if(e===`openCursor`){let e=n,t=a.values;return e&&Object.create(e,{key:{get:()=>(f.addKey(e.primaryKey),e.key)},primaryKey:{get(){let t=e.primaryKey;return f.addKey(t),t}},value:{get:()=>(t&&u.addKey(e.primaryKey),e.value)}})}return n}))}f.add(n)}}return i[e].apply(this,arguments)}})),l}})}},os=class e{constructor(t,n){this._middlewares={},this.verno=0;let r=e.dependencies;this._options=n=V({addons:e.addons,autoOpen:!0,indexedDB:r.indexedDB,IDBKeyRange:r.IDBKeyRange},n),this._deps={indexedDB:n.indexedDB,IDBKeyRange:n.IDBKeyRange};let{addons:i}=n;this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this;let a={dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:U,dbReadyPromise:null,cancelOpen:U,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3};var o;a.dbReadyPromise=new G((e=>{a.dbReadyResolve=e})),a.openCanceller=new G(((e,t)=>{a.cancelOpen=t})),this._state=a,this.name=t,this.on=Va(this,`populate`,`blocked`,`versionchange`,`close`,{ready:[yi,U]}),this.on.ready.subscribe=Or(this.on.ready.subscribe,(t=>(n,r)=>{e.vip((()=>{let e=this._state;if(e.openComplete)e.dbOpenError||G.resolve().then(n),r&&t(n);else if(e.onReadyBeingFired)e.onReadyBeingFired.push(n),r&&t(n);else{t(n);let e=this;r||t((function t(){e.on.ready.unsubscribe(n),e.on.ready.unsubscribe(t)}))}}))})),this.Collection=(o=this,Ha($a.prototype,(function(e,t){this.db=o;let n=Ra,r=null;if(t)try{n=t()}catch(e){r=e}let i=e._ctx,a=i.table,s=a.hook.reading.fire;this._ctx={table:a,index:i.index,isPrimKey:!i.index||a.schema.primKey.keyPath&&i.index===a.schema.primKey.name,range:n,keysOnly:!1,dir:`next`,unique:``,algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:r,or:i.or,valueMapper:s===fi?null:s}}))),this.Table=function(e){return Ha(Ba.prototype,(function(t,n,r){this.db=e,this._tx=r,this.name=t,this.schema=n,this.hook=e._allTables[t]?e._allTables[t].hook:Va(null,{creating:[hi,U],reading:[pi,fi],updating:[_i,U],deleting:[gi,U]})}))}(this),this.Transaction=function(e){return Ha(go.prototype,(function(t,n,r,i,a){this.db=e,this.mode=t,this.storeNames=n,this.schema=r,this.chromeTransactionDurability=i,this.idbtrans=null,this.on=Va(this,`complete`,`error`,`abort`),this.parent=a||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new G(((e,t)=>{this._resolve=e,this._reject=t})),this._completion.then((()=>{this.active=!1,this.on.complete.fire()}),(e=>{var t=this.active;return this.active=!1,this.on.error.fire(e),this.parent?this.parent._reject(e):t&&this.idbtrans&&this.idbtrans.abort(),Sa(e)}))}))}(this),this.Version=function(e){return Ha(Io.prototype,(function(t){this.db=e,this._cfg={version:t,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}}))}(this),this.WhereClause=function(e){return Ha(lo.prototype,(function(t,n,r){this.db=e,this._ctx={table:t,index:n===`:id`?null:n,or:r};let i=e._deps.indexedDB;if(!i)throw new H.MissingAPI;this._cmp=this._ascending=i.cmp.bind(i),this._descending=(e,t)=>i.cmp(t,e),this._max=(e,t)=>i.cmp(e,t)>0?e:t,this._min=(e,t)=>i.cmp(e,t)<0?e:t,this._IDBKeyRange=e._deps.IDBKeyRange}))}(this),this.on(`versionchange`,(e=>{e.newVersion>0?console.warn(`Another connection wants to upgrade database '${this.name}'. Closing db now to resume the upgrade.`):console.warn(`Another connection wants to delete database '${this.name}'. Closing db now to resume the delete request.`),this.close()})),this.on(`blocked`,(e=>{!e.newVersion||e.newVersion<e.oldVersion?console.warn(`Dexie.delete('${this.name}') was blocked`):console.warn(`Upgrade '${this.name}' blocked by other connection holding version ${e.oldVersion/10}`)})),this._maxKey=bo(n.IDBKeyRange),this._createTransaction=(e,t,n,r)=>new this.Transaction(e,t,n,this._options.chromeTransactionDurability,r),this._fireOnBlocked=e=>{this.on(`blocked`).fire(e),ka.filter((e=>e.name===this.name&&e!==this&&!e._state.vcFired)).map((t=>t.on(`versionchange`).fire(e)))},this.use(Ko),this.use(Jo),this.use(as),this.use(Xo),this.vip=Object.create(this,{_vip:{value:!0}}),i.forEach((e=>e(this)))}version(e){if(isNaN(e)||e<.1)throw new H.Type(`Given version is not a positive number`);if(e=Math.round(10*e)/10,this.idbdb||this._state.isBeingOpened)throw new H.Schema(`Cannot add version when database is open`);this.verno=Math.max(this.verno,e);let t=this._versions;var n=t.filter((t=>t._cfg.version===e))[0];return n||(n=new this.Version(e),t.push(n),t.sort(ko),n.stores({}),this._state.autoSchema=!1,n)}_whenReady(e){return this.idbdb&&(this._state.openComplete||W.letThrough||this._vip)?e():new G(((e,t)=>{if(this._state.openComplete)return t(new H.DatabaseClosed(this._state.dbOpenError));if(!this._state.isBeingOpened){if(!this._options.autoOpen)return void t(new H.DatabaseClosed);this.open().catch(U)}this._state.dbReadyPromise.then(e,t)})).then(e)}use({stack:e,create:t,level:n,name:r}){r&&this.unuse({stack:e,name:r});let i=this._middlewares[e]||(this._middlewares[e]=[]);return i.push({stack:e,create:t,level:n==null?10:n,name:r}),i.sort(((e,t)=>e.level-t.level)),this}unuse({stack:e,name:t,create:n}){return e&&this._middlewares[e]&&(this._middlewares[e]=this._middlewares[e].filter((e=>n?e.create!==n:!!t&&e.name!==t))),this}open(){return Vo(this)}_close(){let e=this._state,t=ka.indexOf(this);if(t>=0&&ka.splice(t,1),this.idbdb){try{this.idbdb.close()}catch(e){}this._novip.idbdb=null}e.dbReadyPromise=new G((t=>{e.dbReadyResolve=t})),e.openCanceller=new G(((t,n)=>{e.cancelOpen=n}))}close(){this._close();let e=this._state;this._options.autoOpen=!1,e.dbOpenError=new H.DatabaseClosed,e.isBeingOpened&&e.cancelOpen(e.dbOpenError)}delete(){let e=arguments.length>0,t=this._state;return new G(((n,r)=>{let i=()=>{this.close();var e=this._deps.indexedDB.deleteDatabase(this.name);e.onsuccess=ta((()=>{(function({indexedDB:e,IDBKeyRange:t},n){!Ro(e)&&n!==Pa&&Lo(e,t).delete(n).catch(U)})(this._deps,this.name),n()})),e.onerror=uo(r),e.onblocked=this._fireOnBlocked};if(e)throw new H.InvalidArgument(`Arguments not allowed in db.delete()`);t.isBeingOpened?t.dbReadyPromise.then(i):i()}))}backendDB(){return this.idbdb}isOpen(){return this.idbdb!==null}hasBeenClosed(){let e=this._state.dbOpenError;return e&&e.name===`DatabaseClosed`}hasFailed(){return this._state.dbOpenError!==null}dynamicallyOpened(){return this._state.autoSchema}get tables(){return mr(this._allTables).map((e=>this._allTables[e]))}transaction(){let e=Uo.apply(this,arguments);return this._transaction.apply(this,e)}_transaction(e,t,n){let r=W.trans;r&&r.db===this&&e.indexOf(`!`)===-1||(r=null);let i=e.indexOf(`?`)!==-1,a,o;e=e.replace(`!`,``).replace(`?`,``);try{if(o=t.map((e=>{var t=e instanceof this.Table?e.name:e;if(typeof t!=`string`)throw TypeError(`Invalid table argument to Dexie.transaction(). Only Table or String are allowed`);return t})),e==`r`||e===Fa)a=Fa;else{if(e!=`rw`&&e!=Ia)throw new H.InvalidArgument(`Invalid transaction mode: `+e);a=Ia}if(r){if(r.mode===Fa&&a===Ia){if(!i)throw new H.SubTransaction(`Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY`);r=null}r&&o.forEach((e=>{if(r&&r.storeNames.indexOf(e)===-1){if(!i)throw new H.SubTransaction(`Table `+e+` not included in parent transaction.`);r=null}})),i&&r&&!r.active&&(r=null)}}catch(e){return r?r._promise(null,((t,n)=>{n(e)})):Sa(e)}let s=Wo.bind(null,this,a,o,r,n);return r?r._promise(a,s,`lock`):W.trans?ga(W.transless,(()=>this._whenReady(s))):this._whenReady(s)}table(e){if(!yr(this._allTables,e))throw new H.InvalidTable(`Table ${e} does not exist`);return this._allTables[e]}},ss=typeof Symbol<`u`&&`observable`in Symbol?Symbol.observable:`@@observable`,cs=class{constructor(e){this._subscribe=e}subscribe(e,t,n){return this._subscribe(e&&typeof e!=`function`?e:{next:e,error:t,complete:n})}[ss](){return this}};function ls(e,t){return mr(t).forEach((n=>{es(e[n]||(e[n]=new Qo),t[n])})),e}function us(e){let t,n=!1,r=new cs((r=>{let i=Jr(e),a=!1,o={},s={},c={get closed(){return a},unsubscribe:()=>{a=!0,ho.storagemutated.unsubscribe(f)}};r.start&&r.start(c);let l=!1,u=!1;function d(){return mr(s).some((e=>o[e]&&ts(o[e],s[e])))}let f=e=>{ls(o,e),d()&&p()},p=()=>{if(l||a)return;o={};let m={},h=function(t){i&&la();let n=()=>ca(e,{subscr:t,trans:null}),r=W.trans?ga(W.transless,n):n();return i&&r.then(ua,ua),r}(m);u||(ho(po,f),u=!0),l=!0,Promise.resolve(h).then((e=>{n=!0,t=e,l=!1,a||(d()?p():(o={},s=m,r.next&&r.next(e)))}),(e=>{l=!1,n=!1,r.error&&r.error(e),c.unsubscribe()}))};return p(),c}));return r.hasValue=()=>n,r.getValue=()=>t,r}var ds;try{ds={indexedDB:pr.indexedDB||pr.mozIndexedDB||pr.webkitIndexedDB||pr.msIndexedDB,IDBKeyRange:pr.IDBKeyRange||pr.webkitIDBKeyRange}}catch(e){ds={indexedDB:null,IDBKeyRange:null}}var fs=os;function ps(e){let t=ms;try{ms=!0,ho.storagemutated.fire(e)}finally{ms=t}}br(fs,V(V({},di),{},{delete:e=>new fs(e,{addons:[]}).delete(),exists:e=>new fs(e,{addons:[]}).open().then((e=>(e.close(),!0))).catch(`NoSuchDatabaseError`,(()=>!1)),getDatabaseNames(e){try{return function({indexedDB:e,IDBKeyRange:t}){return Ro(e)?Promise.resolve(e.databases()).then((e=>e.map((e=>e.name)).filter((e=>e!==Pa)))):Lo(e,t).toCollection().primaryKeys()}(fs.dependencies).then(e)}catch(e){return Sa(new H.MissingAPI)}},defineClass:()=>function(e){gr(this,e)},ignoreTransaction:e=>W.trans?ga(W.transless,e):e(),vip:zo,async:function(e){return function(){try{var t=Ho(e.apply(this,arguments));return t&&typeof t.then==`function`?t:G.resolve(t)}catch(e){return Sa(e)}}},spawn:function(e,t,n){try{var r=Ho(e.apply(n,t||[]));return r&&typeof r.then==`function`?r:G.resolve(r)}catch(e){return Sa(e)}},currentTransaction:{get:()=>W.trans||null},waitFor:function(e,t){let n=G.resolve(typeof e==`function`?fs.ignoreTransaction(e):e).timeout(t||6e4);return W.trans?W.trans.waitFor(n):n},Promise:G,debug:{get:()=>Yr,set:e=>{Xr(e,e===`dexie`?()=>!0:Na)}},derive:Cr,extend:gr,props:br,override:Or,Events:Va,on:ho,liveQuery:us,extendObservabilitySet:ls,getByKeyPath:Mr,setByKeyPath:Nr,delByKeyPath:function(e,t){typeof t==`string`?Nr(e,t,void 0):`length`in t&&[].map.call(t,(function(t){Nr(e,t,void 0)}))},shallowClone:Pr,deepClone:Br,getObjectDiff:qo,cmp:Xa,asap:Ar,minKey:Ea,addons:[],connections:ka,errnames:ci,dependencies:ds,semVer:wa,version:wa.split(`.`).map((e=>parseInt(e))).reduce(((e,t,n)=>e+t/10**(2*n)))})),fs.maxKey=bo(fs.dependencies.IDBKeyRange),typeof dispatchEvent<`u`&&typeof addEventListener<`u`&&(ho(po,(e=>{if(!ms){let t;Aa?(t=document.createEvent(`CustomEvent`),t.initCustomEvent(mo,!0,!0,e)):t=new CustomEvent(mo,{detail:e}),ms=!0,dispatchEvent(t),ms=!1}})),addEventListener(mo,(({detail:e})=>{ms||ps(e)})));var ms=!1;if(typeof BroadcastChannel<`u`){let e=new BroadcastChannel(mo);typeof e.unref==`function`&&e.unref(),ho(po,(t=>{ms||e.postMessage(t)})),e.onmessage=e=>{e.data&&ps(e.data)}}else if(typeof self<`u`&&typeof navigator<`u`){ho(po,(e=>{try{ms||(typeof localStorage<`u`&&localStorage.setItem(mo,JSON.stringify({trig:Math.random(),changedParts:e})),typeof self.clients==`object`&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach((t=>t.postMessage({type:mo,changedParts:e}))))}catch(e){}})),typeof addEventListener<`u`&&addEventListener(`storage`,(e=>{if(e.key===mo){let t=JSON.parse(e.newValue);t&&ps(t.changedParts)}}));let e=self.document&&navigator.serviceWorker;e&&e.addEventListener(`message`,(function({data:e}){e&&e.type===mo&&ps(e.changedParts)}))}G.rejectionMapper=function(e,t){if(!e||e instanceof ii||e instanceof TypeError||e instanceof SyntaxError||!e.name||!ui[e.name])return e;var n=new ui[e.name](t||e.message,e);return`stack`in e&&Sr(n,`stack`,{get:function(){return this.inner.stack}}),n},Xr(Yr,Na);var K=new class extends os{constructor(){super(`utopya`),this.version(1).stores({providers:`++id`,categories:`id, [providerId+kind]`,channels:`id, providerId, [providerId+number], [categoryId+number]`,movies:`id, providerId, [categoryId+added]`,series:`id, providerId, [categoryId+added]`,episodes:`id, seriesId, providerId`}),this.version(2).stores({favorites:`id, [providerId+kind]`,recents:`id, [providerId+kind]`}),this.version(3).stores({programs:`id, providerId, [key+start]`,epgLinks:`id, providerId`}),this.version(4).stores({reminders:`id, start`}),this.version(5).stores({progress:`id, providerId, seriesId, updated`}),this.version(6).stores({movies:`id, providerId, [categoryId+added], [providerId+vkey]`,series:`id, providerId, [categoryId+added], [providerId+vkey]`}),this.version(7).stores({movies:`id, providerId, [categoryId+added], [providerId+vkey], [providerId+added]`,series:`id, providerId, [categoryId+added], [providerId+vkey], [providerId+added]`}),this.version(8).stores({catState:`id, providerId`,chanState:`id, providerId`,groups:`++id, providerId`,groupItems:`[groupId+channelId], groupId, channelId`}),this.version(9).stores({epgChannels:`id, providerId`})}};function hs(...e){let t=e.join(`|`),n=2166136261,r=84696351;for(let e=0;e<t.length;e++){let i=t.charCodeAt(e);n=Math.imul(n^i,16777619),r=Math.imul(r^i,1540483477)}return(r>>>0)%2097152*4294967296+(n>>>0)||1}var gs={_doc:`İçerik sınıflandırma. adultWords: kategori adı küçük harfe çevrilip (katlanmadan) alt dize araması. M3U girdisi: adres yolunda /series/ → dizi, /movie/ veya /movies/ → film; uzantı vodExtensions'taysa bölüm kalıbı varsa dizi yoksa film; uzantısız/uzun uzantılı adreslerde grup adı (küçük harf) seriesWords içeriyor ve bölüm kalıbı varsa dizi, movieWords'ten biriyle başlıyor ya da 'vod' içeriyorsa film; aksi halde canlı. notMatchWords: spor programı başlığında geçerse maç sayılmaz (büyük/küçük harf duyarsız).`,adultWords:[`xxx`,`adult`,`+18`,`18+`,`yetişkin`,`yetiskin`,`porn`,`erotic`,`erotik`],vodExtensions:[`mp4`,`mkv`,`avi`,`mov`,`wmv`,`flv`,`m4v`,`webm`,`mpg`,`mpeg`,`divx`],seriesWords:[`series`,`dizi`,`season`,`sezon`,`tv shows`,`shows`],movieWords:[`movie`,`film`,`vod`,`sinema`,`cinema`,`box office`],notMatchWords:[`özet`,`ozet`,`highlights`,`tekrar`,`replay`,`stüdyo`,`studio`,`analiz`,`magazin`,`klip`]},_s={_doc:`Ad işleme. foldName: küçük harf + fold eşlemesi (platform/tür tanıma, arama). normalizeName: küçük harf + normalizeFold, [..] ve (..) silinir, qualityTags harf olmayan sınırlarda silinir, baştaki 2-3 harfli ülke öneki ('tr:', 'uk |') silinir, yalnızca harf/rakam kalır (EPG ve sürüm eşleşmesi). Yapısal regex'ler (ülke öneki, yıl, etiket) her platformun kodunda; davranış fixtures/cases/names.json ile sınanır. U+0307 (birleşik nokta) silinir: 'İ'.lowercase() = 'i̇' olduğundan aksi halde 'DİZİ' 'dizi' ile eşleşmez.`,fold:{"̇":``,ı:`i`,ş:`s`,ğ:`g`,ü:`u`,ö:`o`,ç:`c`,ß:`b`,ə:`e`},normalizeFold:{"̇":``,ı:`i`,ş:`s`,ğ:`g`,ü:`u`,ö:`o`,ç:`c`},qualityTags:[`uhd`,`fhd`,`hd`,`sd`,`4k`,`8k`,`hevc`,`h265`,`1080p`,`720p`,`backup`,`yedek`],removeWordsTrim:` |-:/●`},vs=(()=>{try{return RegExp(`\\p{L}`,`u`).test(`ş`)}catch(e){return!1}})(),ys=vs?`\\p{L}`:`A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u024F\\u0370-\\u03FF\\u0400-\\u04FF\\u0590-\\u06FF\\u3040-\\u30FF\\u4E00-\\u9FFF\\uAC00-\\uD7AF`,bs=(e,t=``)=>new RegExp(e.replace(/LETTER/g,ys),vs?t+`u`:t),xs=e=>{let t=RegExp(`[${Object.keys(e).join(``)}]`,`g`);return n=>n.replace(t,t=>e[t])},Ss=xs(_s.fold),Cs=xs(_s.normalizeFold),ws=e=>Ss(e.toLowerCase()),Ts=/\[[^\]]*\]|\([^)]*\)/g,Es=RegExp(`(^|[^a-z])(${_s.qualityTags.join(`|`)})(?![a-z])`,`g`),Ds=/^[a-z]{2,3}\s*[:|]\s*/,Os=bs(`[^LETTER0-9]`,`g`);function ks(e){return Cs(e.toLowerCase()).replace(Ts,` `).replace(Es,`$1 `).replace(Ds,` `).replace(Os,``)}var As=/^\s*(?:\[([A-Za-z]{2,3})\]\s*[|:\-●•]*|([A-Za-z]{2,3})\s*[|:\-●•]+)\s*/;function js(e){let t=As.exec(e);return t?(t[1]||t[2]).toUpperCase():null}var Ms=/\[([^\]]*)]|\(([^)]*)\)/g,Ns=/^(?:19|20)\d{2}$/;function Ps(e){let t=[];return e.replace(Ms,(e,n,r)=>{let i=(n||r||``).trim();return i&&!Ns.test(i)&&t.push(i),``}),t.length?t.join(` · `):null}var Fs=e=>e.replace(Ms,` `).trim();function Is(e){let t=[];for(let n of e.split(` / `)){let e=Fs(n);e&&t.indexOf(e)<0&&t.push(e)}return t.length?t:[e]}var Ls=e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),Rs=(e,t)=>{let n=0,r=e.length;for(;n<r&&t.indexOf(e[n])>=0;)n++;for(;r>n&&t.indexOf(e[r-1])>=0;)r--;return e.slice(n,r)};function zs(e,t){if(!t.length)return e;let n=e;for(let e of t)n=n.replace(new RegExp(Ls(e),`gi`),` `);return n=Rs(n.replace(/\s{2,}/g,` `),_s.removeWordsTrim),n.trim()?n:e}var Bs=bs(`[LETTER]{2,}.*\\s(?:-|–|vs\\.?|v)\\s.*[LETTER]{2,}`,`i`);function Vs(e){let t=e.toLowerCase();return Bs.test(e)&&!gs.notMatchWords.some(e=>t.indexOf(e)>=0)}var Hs={_doc:`Kategori adından platform tanıma. Ad foldName ile katlanır, separators boşluğa çevrilir, başa/sona boşluk eklenir; keywords'ten biri geçiyor ve excludes'tan hiçbiri geçmiyorsa eşleşir. Listede İLK eşleşen kazanır (sıra önemli). logo: Wikimedia Commons dosya adı (https://commons.wikimedia.org/wiki/Special:FilePath/<ad>?width=320) ya da https ile başlıyorsa doğrudan adres; null ise ad yazı logosu olarak çizilir. tintWhite=false: kendi arka planlı logo, beyaza boyanmaz.`,separators:`|:-_/[]()●•`,platforms:[{key:`netflix`,name:`Netflix`,color:`#E50914`,keywords:[`netflix`],logo:`Netflix_2015_logo.svg`},{key:`hbo`,name:`HBO Max`,color:`#5822B4`,keywords:[`hbo`,` max `,`max original`],excludes:[`max prime`],logo:`Max_logo.svg`},{key:`disney`,name:`Disney+`,color:`#113CCF`,keywords:[`disney`],logo:`Disney%2B_logo.svg`},{key:`prime`,name:`Prime Video`,color:`#00A8E1`,keywords:[`prime`,`amazon`],excludes:[`max prime`],logo:`Amazon_Prime_Video_logo.svg`},{key:`apple`,name:`Apple TV+`,color:`#333333`,keywords:[`apple`],logo:`Apple_TV_Plus_Logo.svg`},{key:`blutv`,name:`BluTV`,color:`#0F6FFF`,keywords:[`blutv`,`blu tv`],logo:`BluTV_logo.svg`,tintWhite:!1},{key:`exxen`,name:`Exxen`,color:`#FFB800`,keywords:[`exxen`],logo:`Exxen.png`,tintWhite:!1},{key:`gain`,name:`Gain`,color:`#7B2CF5`,keywords:[`gain`],logo:`GA%C4%B0N_LOGO.jpg`,tintWhite:!1},{key:`tabii`,name:`tabii`,color:`#00B67A`,keywords:[`tabii`],logo:`Tabii_logo.svg`},{key:`tvplus`,name:`TV+`,color:`#8A7300`,keywords:[`tv+`,`tvplus`,`tv plus`,`turkcell tv`],logo:`https://tvplus.com.tr/images/pwa/icon-192x192.png`,tintWhite:!1},{key:`tod`,name:`TOD`,color:`#6D1ED4`,keywords:[`tod `,`bein connect`,`tod|`,`tod -`]},{key:`puhu`,name:`puhutv`,color:`#FF3D00`,keywords:[`puhu`],logo:`Puhutv.png`,tintWhite:!1},{key:`mubi`,name:`MUBI`,color:`#001489`,keywords:[`mubi`],logo:`Mubi_logo.svg`},{key:`paramount`,name:`Paramount+`,color:`#0064FF`,keywords:[`paramount`],logo:`Paramount_Plus.svg`},{key:`hulu`,name:`Hulu`,color:`#1CE783`,keywords:[`hulu`],logo:`Hulu_Logo.svg`},{key:`bein`,name:`beIN SPORTS`,color:`#5B2C83`,keywords:[`bein`]},{key:`ssport`,name:`S Sport`,color:`#0057B8`,keywords:[`s sport`,`ssport`]},{key:`tivibu`,name:`Tivibu`,color:`#00A0E3`,keywords:[`tivibu`]},{key:`dazn`,name:`DAZN`,color:`#1A1A1A`,keywords:[`dazn`]},{key:`sky`,name:`Sky`,color:`#0072C9`,keywords:[` sky `]},{key:`peacock`,name:`Peacock`,color:`#222222`,keywords:[`peacock`]}]},Us={_doc:`Kategori adından tür. Ad foldName ile katlanır, başa/sona boşluk eklenir (ayırıcılar çevrilmez); alt dize araması, İLK eşleşen kazanır. Hiçbiri eşleşmezse OTHER. Gruplamada sıra bu listenin sırasıdır, OTHER en sonda.`,genres:[{key:`ADULT`,keywords:[`adult`,`xxx`,`+18`,`18+`]},{key:`KIDS`,keywords:[`cocuk`,`kids`,`kinder`,`cartoon`,`cizgi`]},{key:`SPORTS`,keywords:[`spor`,`sport`,`bein`,`futbol`,`football`,`nba`,`ufc`,`f1 `,`motogp`,`epl`,`tennis`,`golf`,`dazn`,`event`]},{key:`NEWS`,keywords:[`haber`,`news`,`nachrichten`]},{key:`DOCS`,keywords:[`belgesel`,`docu`,`doku`,`documentary`,`nature`,`discovery`]},{key:`MUSIC`,keywords:[`muzik`,`music`,`musik`,`radyo`,`radio`]},{key:`MOVIES`,keywords:[`film`,`dizi`,`sinema`,`cinema`,`movie`,`kino`,`serien`,`series`,`boxset`,`yesilcam`,`actor`,`anime`]},{key:`RELIGION`,keywords:[`dini`,`religio`]},{key:`LOCAL`,keywords:[`yerel`,`local`,`regional`]},{key:`NATIONAL`,keywords:[`ulusal`,`national`,`genel`,`general`]},{key:`UHD`,keywords:[`4k`,`uhd`]},{key:`OTHER`,keywords:[]}]},Ws=Hs.platforms,Gs=Us.genres.map(e=>e.key),Ks=RegExp(`[${Hs.separators.replace(/[\]\\\-^]/g,`\\$&`)}]`,`g`);function qs(e){let t=` `+ws(e).replace(Ks,` `)+` `;for(let e of Ws)if(e.keywords.some(e=>t.indexOf(e)>=0)&&!(e.excludes||[]).some(e=>t.indexOf(e)>=0))return e;return null}function Js(e){return e.logo?e.logo.startsWith(`https://`)?e.logo:`https://commons.wikimedia.org/wiki/Special:FilePath/${e.logo}?width=320`:null}function Ys(e){let t=` `+ws(e)+` `,n=Us.genres.find(e=>e.keywords.some(e=>t.indexOf(e)>=0));return n?n.key:`OTHER`}function Xs(e,t){return e.map((e,t)=>[e,t]).sort((e,n)=>t(e[0],n[0])||e[1]-n[1]).map(e=>e[0])}function Zs(e,t){let n=new Map;for(let r of e){let e=t(r);if(e===null)continue;let i=n.get(e);i?i.push(r):n.set(e,[r])}return n}function Qs(e,t,n){let r=e.filter(e=>!e.hidden&&!e.locked),i=e=>e.map(e=>e.id),a=[];return t===`COUNTRY`?(Zs(r,e=>(e.country===void 0?js(e.name):e.country)||n).forEach((e,t)=>a.push({key:`country:${t}`,categoryIds:i(e),country:t})),Xs(a,(e,t)=>Number(t.country===n)-Number(e.country===n)||t.categoryIds.length-e.categoryIds.length)):t===`GENRE`?(Zs(r,e=>Ys(e.name)).forEach((e,t)=>a.push({key:`genre:${t}`,categoryIds:i(e),genre:t})),Xs(a,(e,t)=>Gs.indexOf(e.genre)-Gs.indexOf(t.genre))):t===`PLATFORM`?(Zs(r,e=>{var t,n;return(t=(n=qs(e.name))==null?void 0:n.key)==null?null:t}).forEach((e,t)=>{let n=Ws.find(e=>e.key===t);a.push({key:`platform:${t}`,categoryIds:i(e),platform:n})}),Xs(a,(e,t)=>Ws.indexOf(e.platform)-Ws.indexOf(t.platform))):a}var $s=e=>/^\s*()?#EXT(M3U|INF)/.test(e),ec=e=>e.split(/\s+/).filter(Boolean);async function tc(e){let t=ec(e);if(!t.length)throw new ir(`NOT_FOUND`);for(let e of t){let t=``;if(await dr(await ur(e),e=>(t+=e,t.trim().length<16)),!$s(t))throw new ir(`PARSE`,`not m3u`)}}function nc(e){let t=e.trim().replace(/\/+$/,``);return/^https?:\/\//i.test(t)||(t=`http://${t}`),t.split(`/player_api.php`)[0].split(`/get.php`)[0].replace(/\/+$/,``)}var rc=(e,t,n={})=>{let r=[`username=${encodeURIComponent(e.username)}`,`password=${encodeURIComponent(e.password)}`];t&&r.push(`action=${t}`);for(let e in n)r.push(`${e}=${encodeURIComponent(n[e])}`);return`${nc(e.url)}/player_api.php?${r.join(`&`)}`},ic=(e,t,n)=>`${nc(e.url)}/movie/${e.username}/${e.password}/${t}.${n}`,ac=(e,t,n)=>`${nc(e.url)}/series/${e.username}/${e.password}/${t}.${n}`,oc=(e,t)=>{let n=e[t];return n==null||n===``||typeof n==`object`?null:String(n)},sc=(e,t)=>{let n=parseFloat(oc(e,t)||``);return isNaN(n)?null:n};async function cc(e){let t=``;await dr(await ur(e),e=>{t+=e});try{let e=JSON.parse(t);return e&&typeof e==`object`&&!Array.isArray(e)?e:{}}catch(e){throw new ir(`PARSE`,`json`)}}async function lc(e){let t=await cc(rc(e)),n=t.user_info;if(!n||typeof n!=`object`||sc(n,`auth`)===0)throw new ir(`AUTH`);let r=(oc(n,`status`)||``).toLowerCase();if(r===`expired`)throw new ir(`EXPIRED`);if(r&&r!==`active`)throw new ir(`AUTH`,r);return t}var uc=new URL(`worker-Dzho9WYm.js`,document.currentScript&&document.currentScript.tagName.toUpperCase()===`SCRIPT`&&document.currentScript.src||document.baseURI).href,dc=e=>/\.m3u8?$/i.test(e);function fc(e){return new Promise(t=>e.listFiles(t,()=>t([])))}function pc(e){return new Promise((t,n)=>tizen.filesystem.resolve(e,t,n,`r`))}async function mc(){let e=await new Promise(e=>tizen.filesystem.listStorages(e,()=>e([]))),t=[],n=async(e,r)=>{for(let i of await fc(e))i.isDirectory?r<2&&!i.name.startsWith(`.`)&&await n(i,r+1):dc(i.name)&&t.push({name:i.name,path:i.toURI()})};for(let t of e)if(t.type===`EXTERNAL`&&t.state===`MOUNTED`)try{await n(await pc(t.label),0)}catch(e){}return t}async function hc(e){let t=await pc(e);return new Promise((e,n)=>t.readAsText(e,n,`UTF-8`))}var gc=[`HERO`,`CONTINUE`,`UP_NEXT`,`NEW_EPISODES`,`FAVORITE_CHANNELS`,`STARTING_SOON`,`RECENT_CHANNELS`,`TONIGHT_SPORTS`,`SCHEDULE`,`PLATFORMS`,`FOR_YOU`,`NEW_MOVIES`,`NEW_SERIES`,`TOP_RATED`,`GENRES`],_c={groupMode:`CATEGORY`,numbering:`GLOBAL`,previewAutoplay:!0,fallbackToPrevious:!0,aspect:`fit`,colorKeys:[`FAVORITE`,`AUDIO`,`SUBTITLES`,`ASPECT`],lastChannelId:null,homeShelves:gc,knownShelves:gc,pinHash:null,hideLocked:!1,adultAutoLock:!0,searchHistory:[],startScreen:`home`,accent:`blue`,theme:`navy`,filterWords:[],epgHours:12,epgOffsetMin:0,autoNextEpisode:!0,preferredAudio:`tr`,preferredSubtitle:null,subtitleScale:1,subtitleColor:0,subtitleBackground:!1,autoSubtitles:!1,rememberTracks:!0,stremioAddons:[]},vc=`utopya.settings`,yc=[`HERO`,`CONTINUE`,`UP_NEXT`,`FAVORITE_CHANNELS`,`RECENT_CHANNELS`,`TONIGHT_SPORTS`,`SCHEDULE`,`PLATFORMS`,`NEW_MOVIES`,`NEW_SERIES`,`TOP_RATED`];function bc(e,t){let n=e.slice();return gc.forEach((e,r)=>{if(t.indexOf(e)>=0||n.indexOf(e)>=0)return;let i=0;for(let e=r-1;e>=0;e--){let t=n.indexOf(gc[e]);if(t>=0){i=t+1;break}}n.splice(i,0,e)}),n}function xc(){try{let e=JSON.parse(localStorage.getItem(vc)||`{}`);return e.homeShelves&&(e.homeShelves=bc(e.homeShelves,e.knownShelves||yc)),V(V(V({},_c),e),{},{knownShelves:gc})}catch(e){return _c}}var q=I(xc()),Sc=()=>{q.value=xc()};function Cc(e){q.value=V(V({},q.value),e);try{localStorage.setItem(vc,JSON.stringify(q.value))}catch(e){}}var wc={blue:`#4FC3F7`,orange:`#FFA726`,green:`#66BB6A`,purple:`#B388FF`,red:`#FF5252`},Tc={navy:[`#070C18`,`#111C33`,`#1A2947`,`#0D1830`],amoled:[`#000000`,`#0E0E0E`,`#1C1C1C`,`#000000`],graphite:[`#0E0F12`,`#1A1C21`,`#262A31`,`#16181D`],forest:[`#06120D`,`#0F2219`,`#183327`,`#0B1E15`],wine:[`#14070C`,`#241018`,`#351823`,`#1E0B12`]},Ec=e=>{let t=parseInt(e.slice(1),16);return`${t>>16}, ${t>>8&255}, ${t&255}`};function Dc(){let e=document.documentElement.style,[t,n,r,i]=Tc[q.value.theme],a=wc[q.value.accent];e.setProperty(`--bg`,t),e.setProperty(`--surface`,n),e.setProperty(`--surface-variant`,r),e.setProperty(`--bg-top`,i),e.setProperty(`--glass`,`rgba(${Ec(n)}, 0.72)`),e.setProperty(`--accent`,a),e.setProperty(`--accent-rgb`,Ec(a))}q.subscribe(Dc);var Oc=I(null),kc=I(null),Ac=I(null),jc=`utopya.activeProvider`;async function Mc(){let e=await K.providers.toArray(),t=null;try{t=Number(localStorage.getItem(jc))||null}catch(e){}return e.some(e=>e.id===t)||(t=e.length?e[0].id:null),Oc.value=e,kc.value=t,e}function Nc(e){kc.value=e;try{localStorage.setItem(jc,String(e))}catch(e){}}async function Pc(e,t){if(e.type===`xtream`)await lc(e);else if(t!==void 0){if(!/^\s*()?#EXT(M3U|INF)/.test(t.slice(0,64)))throw new ir(`PARSE`,`not m3u`)}else await tc(e.url)}function Fc(){let e=(Oc.value||[]).find(e=>e.id===kc.value);e&&e.lastSync&&Date.now()-(e.lastEpgSync||0)>q.peek().epgHours*36e5&&Rc(e.id,void 0,`epg`)}async function Ic(e){let t=await K.providers.add(e);return await Mc(),Nc(t),t}var Lc=null;async function Rc(e,t,n=`all`){let r=(Oc.value||[]).find(t=>t.id===e);if(n===`all`&&t===void 0&&r&&r.type===`m3u`&&/^file:/i.test(r.url))try{t=await hc(r.url)}catch(t){Ac.value={providerId:e,failed:`NOT_FOUND`,detail:r.url};return}Lc||(Lc=new Worker(uc,{type:`classic`}),Lc.onmessage=e=>{let t=e.data;(t.type!==`progress`||t.count===0)&&console.log(`senkron`,t.type,`stage`in t?t.stage:``,`error`in t?`${t.error} ${t.detail}`:``),t.type===`progress`?Ac.value={providerId:t.providerId,stage:t.stage,count:t.count}:t.type===`done`?(Ac.value={providerId:t.providerId,stage:`DONE`,count:t.counts.live},Mc()):Ac.value={providerId:t.providerId,failed:t.error,detail:t.detail}},Lc.onerror=e=>{console.error(`worker hatası`,e.message,e.filename,e.lineno);let t=Ac.value;t&&(Ac.value={providerId:t.providerId,failed:`UNKNOWN`,detail:e.message})}),Ac.value={providerId:e,stage:`CONNECTING`,count:0},Lc.postMessage({type:`sync`,providerId:e,fileText:t,mode:n,epgOffsetMin:q.peek().epgOffsetMin})}var zc={name:``,url:``,username:``,password:``,epg:``,userAgent:``,liveFormat:`ts`};function Bc(e,t,n){return n?n.name.replace(/\.m3u8?$/i,``):t.replace(/^[a-z]+:\/\//i,``).split(/[/:\s]/)[0]||(e===`xtream`?`Xtream`:`M3U`)}function Vc(e){let[t,n]=N({s:`choose`}),[r,i]=N(zc),[a,o]=N(null),[s,c]=N(null),[l,u]=N(!1),[d,f]=N(`xtream`),p=F(null);P(()=>{L(p.current)},[t.s,t.s===`form`?t.kind:``]);let m=e=>{f(e),c(null),u(!1),n({s:`form`,kind:e})};return Bt(r=>{if(r===`back`)return t.s===`choose`?e.onExit():t.s===`usb`?n({s:`form`,kind:`file`}):t.s===`form`?n({s:`choose`}):t.s===`sync`&&e.onDone(),!0}),j(`div`,{class:`onboarding`,ref:p,children:[t.s===`choose`&&j(Uc,{open:m}),t.s===`form`&&j(Jc,{kind:t.kind,form:r,edit:e=>i(V(V({},r),e)),file:a,pickFile:async()=>{Tt?n({s:`usb`}):Hc(e=>o(e))},error:s,missing:l,submit:async()=>{let e=d,t=e===`file`?(a==null?void 0:a.uri)||``:cr(r.url);if(!t||e===`xtream`&&(!r.username.trim()||!r.password)){u(!0);return}u(!1),c(null);let i={name:r.name.trim()||Bc(e,t,a),type:e===`xtream`?`xtream`:`m3u`,url:e===`xtream`?nc(t):t,username:r.username.trim(),password:r.password,epgUrls:r.epg.split(/[\s,]+/).map(cr).filter(e=>/^https?:/i.test(e)),userAgent:r.userAgent.trim()||null,liveFormat:r.liveFormat,createdAt:Date.now()};n({s:`validating`});try{await Pc(i,a==null?void 0:a.text);let t=await Ic(i);Rc(t,e===`file`?a.text:void 0),n({s:`sync`,providerId:t})}catch(t){console.warn(`doğrulama`,t),c(or(t)),n({s:`form`,kind:e})}},back:()=>n({s:`choose`})}),t.s===`usb`&&j(Yc,{onPick:async e=>{try{o({name:e.name,uri:e.path,text:await hc(e.path)}),c(null)}catch(e){c(`NOT_FOUND`)}n({s:`form`,kind:`file`})},back:()=>n({s:`form`,kind:`file`})}),t.s===`validating`&&j(`p`,{class:`center-msg`,children:R(`onb_validating`)}),t.s===`sync`&&j(Xc,{providerId:t.providerId,onDone:e.onDone,back:()=>m(d)})]})}function Hc(e){let t=document.createElement(`input`);t.type=`file`,t.accept=`.m3u,.m3u8,audio/x-mpegurl`,t.onchange=()=>{let n=t.files&&t.files[0];if(!n)return;let r=new FileReader;r.onload=()=>e({name:n.name,uri:`file:${n.name}`,text:String(r.result)}),r.readAsText(n)},t.click()}function Uc({open:e}){return j(`div`,{class:`onb-choose`,children:[j(`div`,{class:`onb-brand`,children:[j(`div`,{class:`brand-mark`,children:j(z,{name:`play`})}),j(`h1`,{children:R(`app_name`)}),j(`p`,{class:`tagline muted`,children:R(`onb_tagline`)}),j(`ul`,{class:`features`,children:[j(Wc,{icon:`live`,text:R(`onb_feat_live`)}),j(Wc,{icon:`movie`,text:R(`onb_feat_vod`)}),j(Wc,{icon:`grid`,text:R(`tz_feat_tools`)})]}),j(`p`,{class:`note muted`,children:R(`onb_no_content`)})]}),j(`div`,{class:`onb-options`,children:[j(`h2`,{children:R(`onb_how`)}),j(Gc,{icon:`dns`,tint:`#4FC3F7`,title:R(`onb_xtream`),desc:R(`onb_xtream_desc`),badge:R(`onb_badge_common`),initial:!0,onClick:()=>e(`xtream`)}),j(Gc,{icon:`link`,tint:`#66BB6A`,title:R(`onb_m3u_url`),desc:R(`onb_m3u_url_desc`),onClick:()=>e(`m3u`)}),j(Gc,{icon:`file`,tint:`#90A4AE`,title:R(`onb_m3u_file`),desc:R(`tz_m3u_file_desc`),onClick:()=>e(`file`)})]})]})}function Wc({icon:e,text:t}){return j(`li`,{children:[j(`span`,{class:`feature-icon`,children:j(z,{name:e})}),t]})}function Gc(e){return j(`button`,{class:`option`,"data-focus":!0,"data-focus-default":e.initial||void 0,onClick:e.onClick,children:[j(`span`,{class:`option-icon`,style:{color:e.tint,background:Kc(e.tint,.16)},children:j(z,{name:e.icon})}),j(`span`,{class:`option-text`,children:[j(`span`,{class:`option-title`,children:[e.title,e.badge&&j(`span`,{class:`badge`,style:{color:e.tint,background:Kc(e.tint,.2)},children:e.badge})]}),j(`span`,{class:`muted`,children:e.desc})]}),j(z,{name:`chevron`,class:`muted`})]})}var Kc=(e,t)=>{let n=parseInt(e.slice(1),16);return`rgba(${n>>16}, ${n>>8&255}, ${n&255}, ${t})`};function qc({title:e,hint:t,back:n}){return j(`div`,{class:`step-header`,children:[j(`button`,{class:`btn outline`,"data-focus":!0,onClick:n,children:[j(z,{name:`back`}),R(`back`)]}),j(`div`,{children:[j(`h1`,{children:e}),t&&j(`p`,{class:`muted`,children:t})]})]})}function Jc(e){let{kind:t,form:n,edit:r}=e,[i,a]=t===`xtream`?[R(`onb_xtream`),R(`onb_hint_xtream`)]:t===`m3u`?[R(`onb_m3u_url`),R(`onb_hint_m3u`)]:[R(`onb_m3u_file`),R(`tz_hint_file`)];return j(`div`,{class:`form-step`,children:[j(qc,{title:i,hint:a,back:e.back}),j(`div`,{class:`form-row`,children:[j(`div`,{class:`form-panel glass`,"data-focus-group":`form-${t}`,children:[t===`m3u`&&j(ln,{label:R(`onb_url`),value:n.url,onInput:e=>r({url:e}),placeholder:`http://…/playlist.m3u`,initial:!0}),t===`file`&&j(`div`,{class:`field`,children:[e.file&&j(`p`,{class:`file-chosen`,children:R(`onb_file_chosen`,e.file.name)}),j(`button`,{class:`btn`,"data-focus":!0,"data-focus-default":!0,onClick:e.pickFile,children:[j(z,{name:`folder`}),R(`onb_pick_file`)]})]}),t===`xtream`&&j(b,{children:[j(ln,{label:R(`onb_server`),value:n.url,onInput:e=>r({url:e}),placeholder:`http://server:8080`,initial:!0}),j(`div`,{class:`field-pair`,children:[j(ln,{label:R(`onb_username`),value:n.username,onInput:e=>r({username:e})}),j(ln,{label:R(`onb_password`),value:n.password,onInput:e=>r({password:e}),password:!0})]})]}),j(`button`,{class:`btn primary connect`,"data-focus":!0,onClick:e.submit,children:R(`onb_connect`)}),j(`h3`,{class:`muted`,children:R(`onb_optional`)}),j(ln,{label:R(`onb_name`),value:n.name,onInput:e=>r({name:e}),placeholder:R(`onb_name_ph`)}),j(ln,{label:R(`onb_epg`),value:n.epg,onInput:e=>r({epg:e}),placeholder:`http://…/epg.xml.gz`}),t!==`file`&&j(ln,{label:R(`onb_user_agent`),value:n.userAgent,onInput:e=>r({userAgent:e})}),t===`xtream`&&j(`div`,{class:`field`,children:[j(`span`,{class:`field-label`,children:R(`onb_live_format`)}),j(`div`,{class:`row`,children:[`ts`,`m3u8`].map(e=>j(`button`,{class:`chip${n.liveFormat===e?` selected`:``}`,"data-focus":!0,onClick:()=>r({liveFormat:e}),children:e.toUpperCase()},e))})]})]}),j(`div`,{class:`form-side`,children:[e.missing&&j(`p`,{class:`error-box`,children:R(`onb_required`)}),e.error&&j(`p`,{class:`error-box`,children:R(ar(e.error))}),j(`div`,{class:`onb-help glass`,children:[j(`h3`,{children:R(`tz_onb_help_title`)}),j(`ul`,{children:[t!==`file`&&j(`li`,{children:R(`tz_onb_help_keyboard`)}),t===`xtream`&&j(`li`,{children:R(`tz_onb_help_server`)}),t===`xtream`&&j(`li`,{children:R(`tz_onb_help_creds`)}),t===`m3u`&&j(`li`,{children:R(`tz_onb_help_m3u`)}),t===`file`&&j(`li`,{children:R(`tz_onb_help_file`)}),j(`li`,{children:R(`tz_onb_help_epg`)}),j(`li`,{children:R(`tz_onb_help_privacy`)})]})]})]})]})]})}function Yc({onPick:e,back:t}){let[n,r]=N(null),i=F(null);return P(()=>{mc().then(r,()=>r([]))},[]),P(()=>{n&&L(i.current)},[n]),j(`div`,{class:`form-step`,children:[j(qc,{title:R(`tz_usb_title`),back:t}),j(`div`,{class:`usb-list glass`,ref:i,children:[n===null&&j(`p`,{class:`muted`,children:R(`loading`)}),n&&!n.length&&j(`p`,{class:`muted`,children:R(`tz_usb_empty`)}),n&&n.map(t=>j(`button`,{class:`option`,"data-focus":!0,onClick:()=>e(t),children:[j(`span`,{class:`option-icon`,children:j(z,{name:`file`})}),j(`span`,{class:`option-text`,children:[j(`span`,{class:`option-title`,children:t.name}),j(`span`,{class:`muted`,children:decodeURI(t.path.replace(/^file:\/\//,``))})]})]},t.path))]})]})}function Xc({providerId:e,onDone:t,back:n}){let r=Ac.value,i=r&&r.providerId===e?r:null;P(()=>{i&&`stage`in i&&i.stage===`DONE`&&t()},[i]);let a=i&&`failed`in i?i:null,o=F(null);return P(()=>{L(o.current)},[!!a]),j(`div`,{class:`sync-step`,ref:o,children:[j(`h1`,{children:R(`sync_title`)}),a?j(b,{children:[j(`p`,{class:`error-text`,children:R(`sync_failed`)}),j(`p`,{children:R(ar(a.failed))}),j(`div`,{class:`row`,children:[j(`button`,{class:`btn primary`,"data-focus":!0,"data-focus-default":!0,onClick:()=>Rc(e),children:R(`retry`)}),j(`button`,{class:`btn outline`,"data-focus":!0,onClick:n,children:R(`back`)})]})]}):j(b,{children:[j(`p`,{class:`stage`,children:Zc(i&&`stage`in i?i:null)}),j(`div`,{class:`indeterminate`,children:j(`span`,{})}),j(`button`,{class:`btn outline`,"data-focus":!0,"data-focus-default":!0,onClick:t,children:R(`sync_background`)})]})]})}function Zc(e){switch(e&&e.stage){case`CATEGORIES`:return R(`sync_categories`);case`LIVE`:return R(`sync_live`,e.count);case`MOVIES`:return R(`sync_movies`,e.count);case`SERIES`:return R(`sync_series`,e.count);case`EPG`:return R(`sync_epg`,e.count);case`DONE`:return R(`sync_done`);default:return R(`sync_connecting`)}}function Qc(e){let t=typeof e==`string`?e:``;try{let e=atob(t),n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t);let r=new TextDecoder(`utf-8`).decode(n);return/[\uFFFD\u0000-\u0008]/.test(r)?t:r}catch(e){return t}}function $c(e,t,n,r){let i=[];for(let a of e){let e=Number(a.start_timestamp),o=Number(a.stop_timestamp==null?a.end_timestamp:a.stop_timestamp);e&&o&&(o<=e&&(o+=86400),i.push({id:hs(n,e*1e3),providerId:t,key:n,start:e*1e3,stop:o*1e3,title:Qc(a.title),desc:Qc(a.description)||null,category:null,stamp:r}))}return i.sort((e,t)=>e.start-t.start)}var el=432e5;async function tl(e){let t=await K.epgLinks.get(e);return t?t.key:null}async function nl(e,t,n){let r=await tl(e);return r?(await K.programs.where(`[key+start]`).between([r,t-el],[r,n],!0,!1).toArray()).filter(e=>e.stop>t):[]}async function rl(e,t,n){let r=await nl(e.id,t,n);return!r.some(e=>e.stop>Date.now())&&await cl(e)&&(r=await nl(e.id,t,n)),r}var il=(e,t)=>{let n=null;for(let r of e)r.start<=t&&r.stop>t&&(n=r);let r=n?n.stop:t;return{now:n,next:e.find(e=>e.start>=r)||null}};async function al(e,t=Date.now()){let n=await rl(e,t-1,t+432e5);return n.length?il(n,t):il(await ul(e),t)}var ol=e=>{let t=(Oc.value||[]).find(t=>t.id===e.providerId);return t&&t.type===`xtream`?t:null},sl=new Map;async function cl(e){let t=ol(e),n=sl.get(e.id)||0;if(!t||Date.now()-n<18e5)return!1;sl.set(e.id,Date.now());try{let n=await K.epgLinks.get(e.id);if(n&&n.manual)return!1;let r=await cc(rc(t,`get_simple_data_table`,{stream_id:e.remoteId})),i=`${t.id}|xt:${e.remoteId}`,a=$c(r.epg_listings||[],t.id,i,Date.now());return a.some(e=>e.stop>Date.now())?(await K.programs.bulkPut(a),await K.epgLinks.put({id:e.id,providerId:t.id,key:i,manual:!1}),!0):!1}catch(e){return console.warn(`get_simple_data_table`,e),!1}}var ll=new Map;async function ul(e){let t=ol(e);if(!t)return[];let n=ll.get(e.id);if(n&&Date.now()-n.at<6e5)return n.list;let r=[];try{r=$c((await cc(rc(t,`get_short_epg`,{stream_id:e.remoteId,limit:`4`}))).epg_listings||[],t.id,`${t.id}|xs:${e.remoteId}`,Date.now())}catch(e){}return ll.delete(e.id),ll.set(e.id,{at:Date.now(),list:r}),ll.size>200&&ll.delete(ll.keys().next().value),r}var dl=(e,t=Date.now())=>Math.max(0,Math.min(1,(t-e.start)/(e.stop-e.start))),fl=e=>e<10?`0${e}`:`${e}`,pl=e=>{let t=new Date(e);return`${fl(t.getHours())}:${fl(t.getMinutes())}`},ml=e=>`${pl(e.start)} – ${pl(e.stop)}`,hl=I(Date.now());setInterval(()=>hl.value=Date.now(),3e5);var gl=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function _l(e){let t=new TextEncoder().encode(e),n=t.length,r=n+9+63>>6<<6,i=new Uint8Array(r);i.set(t),i[n]=128,new DataView(i.buffer).setUint32(r-4,n*8);let a=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],o=Array(64),s=new DataView(i.buffer),c=(e,t)=>e>>>t|e<<32-t;for(let e=0;e<r;e+=64){for(let t=0;t<16;t++)o[t]=s.getUint32(e+t*4);for(let e=16;e<64;e++){let t=c(o[e-15],7)^c(o[e-15],18)^o[e-15]>>>3,n=c(o[e-2],17)^c(o[e-2],19)^o[e-2]>>>10;o[e]=o[e-16]+t+o[e-7]+n|0}let[t,n,r,i,l,u,d,f]=a;for(let e=0;e<64;e++){let a=f+(c(l,6)^c(l,11)^c(l,25))+(l&u^~l&d)+gl[e]+o[e]|0,s=(c(t,2)^c(t,13)^c(t,22))+(t&n^t&r^n&r)|0;f=d,d=u,u=l,l=i+a|0,i=r,r=n,n=t,t=a+s|0}a[0]=a[0]+t|0,a[1]=a[1]+n|0,a[2]=a[2]+r|0,a[3]=a[3]+i|0,a[4]=a[4]+l|0,a[5]=a[5]+u|0,a[6]=a[6]+d|0,a[7]=a[7]+f|0}return a.map(e=>(`0000000`+(e>>>0).toString(16)).slice(-8)).join(``)}var vl=new Set,yl=I(0),bl=I(new Map),xl=I(new Map);async function Sl(e){let[t,n]=await Promise.all([K.catState.where(`providerId`).equals(e).toArray(),K.chanState.where(`providerId`).equals(e).toArray()]);bl.value=new Map(t.map(e=>[e.id,e])),xl.value=new Map(n.map(e=>[e.id,e])),yl.value++}function Cl(e){let t=bl.value.get(e.id);return t&&t.locked!==void 0?t.locked:e.adult&&q.value.adultAutoLock}function wl(e,t){return!q.value.pinHash||t!==void 0&&vl.has(t)||e&&vl.has(e.id)?!1:t!==void 0&&!!(xl.value.get(t)||{}).locked||!!e&&Cl(e)}function Tl(e,t){e!==null&&vl.add(e),t!==void 0&&vl.add(t)}function El(e){let t=bl.value.get(e.id);return!(t&&t.hidden||q.value.hideLocked&&q.value.pinHash&&Cl(e)&&!vl.has(e.id))}var Dl=e=>!!(xl.value.get(e)||{}).hidden;async function Ol(e,t,n,r){let i=K[e],a=await i.get(t)||{id:t,providerId:n};await i.put(V(V({},a),r)),await Sl(n)}var kl=(e,t,n)=>Ol(`catState`,e,t,n),Al=(e,t,n)=>Ol(`chanState`,e,t,n),jl=e=>_l(`utopya:${e}`),Ml=()=>!!q.peek().pinHash,Nl=e=>!q.peek().pinHash||jl(e)===q.peek().pinHash;function Pl(e){vl.clear(),Cc({pinHash:e?jl(e):null}),yl.value++}var Fl=e=>e.type===`cat`?`cat:${e.id}`:e.type===`ugroup`?`ug:${e.id}`:e.type===`group`?e.key:e.type,Il=50;async function Ll(e,t){let n=await Rl(e,t),r=(await K.categories.where(`[providerId+kind]`).equals([e,`live`]).toArray()).filter(e=>!El(e)),i=new Set;if(t.type!==`cat`)for(let e of r)for(let t of await K.channels.where(`[categoryId+number]`).between([e.id,os.minKey],[e.id,os.maxKey]).primaryKeys())i.add(t);return n.filter(e=>!i.has(e)&&!Dl(e))}async function Rl(e,t){if(t.type===`all`)return K.channels.where(`[providerId+number]`).between([e,os.minKey],[e,os.maxKey]).primaryKeys();if(t.type===`cat`)return K.channels.where(`[categoryId+number]`).between([t.id,os.minKey],[t.id,os.maxKey]).primaryKeys();if(t.type===`group`){let e=[];for(let n of t.ids)await K.channels.where(`[categoryId+number]`).between([n,os.minKey],[n,os.maxKey]).eachKey((t,n)=>{e.push([t[1],n.primaryKey])});return e.map((e,t)=>[e[0],t,e[1]]).sort((e,t)=>e[0]-t[0]||e[1]-t[1]).map(e=>e[2])}return t.type===`ugroup`?(await K.groupItems.where(`groupId`).equals(t.id).toArray()).sort((e,t)=>e.order-t.order).map(e=>e.channelId):t.type===`fav`?(await K.favorites.where(`[providerId+kind]`).equals([e,`live`]).toArray()).sort((e,t)=>e.order-t.order).map(e=>e.id):(await K.recents.where(`[providerId+kind]`).equals([e,`live`]).toArray()).sort((e,t)=>t.at-e.at).slice(0,Il).map(e=>e.id)}var zl=class e{constructor(e){rr(this,`ids`,void 0),rr(this,`pages`,new Map),this.ids=e}page(t){let n=this.pages.get(t);return n||(n=K.channels.bulkGet(this.ids.slice(t*e.PAGE,(t+1)*e.PAGE)),this.pages.set(t,n),this.pages.size>8&&this.pages.delete(this.pages.keys().next().value)),n}async range(t,n){let r=e.PAGE,i=[];for(let e=Math.floor(t/r);e<=Math.floor((n-1)/r);e++)(await this.page(e)).forEach((a,o)=>{let s=e*r+o;s>=t&&s<n&&i.push(a)});return i}};rr(zl,`PAGE`,40);async function Bl(e,t,n){return await K.favorites.get(n)?(await K.favorites.delete(n),!1):(await K.favorites.put({id:n,providerId:e,kind:t,order:Date.now()}),!0)}async function Vl(e,t,n){await K.recents.put({id:n,providerId:e,kind:t,at:Date.now()})}var Hl=e=>K.groups.where(`providerId`).equals(e).sortBy(`order`);async function Ul(e,t){return K.groups.add({providerId:e,name:t,order:Date.now()})}var Wl=(e,t)=>K.groupItems.put({groupId:e,channelId:t,order:Date.now()}),Gl=(e,t)=>K.groupItems.delete([e,t]);async function Kl(e){await K.groupItems.where(`groupId`).equals(e).delete(),await K.groups.delete(e)}async function ql(e,t,n,r){if(r<0||r>=t.length)return;let[i,a]=await Promise.all([K.groupItems.get([e,t[n]]),K.groupItems.get([e,t[r]])]);i&&a&&await K.groupItems.bulkPut([V(V({},i),{},{order:a.order}),V(V({},a),{},{order:i.order})])}var J=(e,t)=>{let n=e?e[t]:null;return n==null||n===``||typeof n==`object`?null:String(n)},Jl=(e,t)=>{let n=parseFloat(J(e,t)||``);return isNaN(n)?null:n},Yl=(e,t)=>{let n=e?e[t]:null;return Array.isArray(n)?typeof n[0]==`string`&&n[0]?n[0]:null:J(e,t)};function Xl(e){if(!e)return null;let t=/^(\d+):(\d{2})(?::(\d{2}))?$/.exec(e.trim());if(t)return t[1]*3600+t[2]*60+(t[3]?+t[3]:0);let n=/(\d+)\s*min/i.exec(e);return n?n[1]*60:null}var Zl=e=>(Oc.value||[]).find(t=>t.id===e);async function Ql(e){let t=Zl(e.providerId);if(e.detailLoaded||!t||t.type!==`xtream`)return e;try{let n=await cc(rc(t,`get_vod_info`,{vod_id:e.remoteId})),r=n.info,i=n.movie_data,a=J(i,`container_extension`),o=Jl(r,`rating`),s={poster:e.poster||J(r,`movie_image`)||J(r,`cover_big`),backdrop:Yl(r,`backdrop_path`)||e.backdrop||null,plot:J(r,`plot`)||J(r,`description`)||e.plot,cast:J(r,`cast`)||J(r,`actors`),director:J(r,`director`),genre:J(r,`genre`)||e.genre,year:(J(r,`releasedate`)||J(r,`release_date`)||``).slice(0,4)||e.year,rating:o&&o>0?o:e.rating,durationSec:Jl(r,`duration_secs`)||Xl(J(r,`duration`)),tmdbId:J(r,`tmdb_id`)||J(r,`tmdb`),url:a?ic(t,e.remoteId,a):e.url,detailLoaded:!0};return await K.movies.update(e.id,s),V(V({},e),s)}catch(t){return console.warn(`get_vod_info`,t),e}}async function $l(e){let t=Zl(e.providerId),n=()=>K.episodes.where(`seriesId`).equals(e.id).toArray();if(e.detailLoaded||!t||t.type!==`xtream`)return{series:e,episodes:eu(await n())};try{let n=await cc(rc(t,`get_series_info`,{series_id:e.remoteId})),r=n.info,i=Jl(r,`rating`),a={poster:e.poster||J(r,`cover`),backdrop:Yl(r,`backdrop_path`)||e.backdrop,plot:J(r,`plot`)||e.plot,cast:J(r,`cast`)||e.cast,genre:J(r,`genre`)||e.genre,rating:i&&i>0?i:e.rating,tmdbId:J(r,`tmdb_id`)||J(r,`tmdb`),detailLoaded:!0},o=n.episodes,s=Array.isArray(o)?o.filter(Array.isArray).map(e=>[null,e]):o&&typeof o==`object`?Object.keys(o).map(e=>[e,o[e]]).filter(e=>Array.isArray(e[1])):[],c=Date.now(),l=[];for(let[n,r]of s)r.forEach((r,i)=>{let a=J(r,`id`);if(!a)return;let o=r.info,s=Jl(r,`season`)||(n?parseInt(n,10):0)||1;l.push({id:hs(e.providerId,`episode`,a),providerId:e.providerId,stamp:c,seriesId:e.id,remoteId:a,season:s,episode:Jl(r,`episode_num`)||i+1,title:J(r,`title`)||`S${s}E${i+1}`,url:ac(t,a,J(r,`container_extension`)||`mp4`),poster:J(o,`movie_image`)||null,plot:J(o,`plot`),durationSec:Jl(o,`duration_secs`)||Xl(J(o,`duration`))})});return await K.transaction(`rw`,K.series,K.episodes,async()=>{await K.series.update(e.id,a),await K.episodes.where(`seriesId`).equals(e.id).delete(),await K.episodes.bulkPut(l)}),{series:V(V({},e),a),episodes:eu(l)}}catch(t){return console.warn(`get_series_info`,t),{series:e,episodes:eu(await n())}}}var eu=e=>e.sort((e,t)=>e.season-t.season||e.episode-t.episode),tu=.95;async function nu(e,t,n,r,i,a){if(!a||i<5e3)return;let o=i/a>=tu;await K.progress.put({id:t,providerId:n,kind:e,seriesId:r,position:o?0:i,duration:a,watched:o,updated:Date.now()})}async function ru(e,t,n,r,i){if(!i)return K.progress.delete(t);await K.progress.put({id:t,providerId:n,kind:e,seriesId:r,position:0,duration:0,watched:!0,updated:Date.now()})}var iu=e=>K.progress.get(e);async function au(e){let t=await K.progress.bulkGet(e),n=new Map;return t.forEach(e=>e&&n.set(e.id,e)),n}async function ou(e){let t=e.filter(e=>!e.episode&&e.item&&!e.item.backdrop&&!e.item.detailLoaded).slice(0,20);if(!t.length)return e;let n=await Promise.all(t.map(e=>Promise.race([Ql(e.item),new Promise(e=>setTimeout(()=>e(null),3e3))]))),r=new Map;return n.forEach(e=>{e&&r.set(e.id,e)}),e.map(e=>e.item&&r.has(e.item.id)?V(V({},e),{},{item:r.get(e.item.id)}):e)}var su=e=>e===`movie`?K.movies:K.series,cu=e=>({key:`i${e.id}`,id:e.id,title:e.name,poster:e.poster,rating:e.rating,item:e});async function lu(e,t){return K.categories.where(`[providerId+kind]`).equals([e,t]).sortBy(`order`)}async function uu(e,t,n=30){return su(t).where(`[providerId+added]`).between([e,os.minKey],[e,os.maxKey]).reverse().limit(n).toArray()}async function du(e,t){let n=n=>n.where(`[categoryId+added]`).between([e,os.minKey],[e,os.maxKey]).reverse().limit(t).toArray(),r=await n(su(`movie`));return r.length?r:n(su(`series`))}async function fu(e,t){let n=(await K.favorites.where(`[providerId+kind]`).equals([e,t]).toArray()).sort((e,t)=>t.order-e.order);return(await su(t).bulkGet(n.map(e=>e.id))).filter(e=>!!e)}async function pu(e,t){let n=(await K.progress.where(`providerId`).equals(e).toArray()).filter(e=>!e.watched&&e.position>0&&(t===`movie`?e.kind===`movie`:e.kind===`episode`)).sort((e,t)=>t.updated-e.updated),r=[],i=new Set;for(let e of n){if(r.length>=30)break;let n=e.duration?e.position/e.duration:0;if(t===`movie`){let t=await K.movies.get(e.id);t&&r.push({key:`c${t.id}`,id:t.id,title:t.name,poster:t.poster,rating:null,progress:n,item:t,updated:e.updated})}else if(e.seriesId!==null&&!i.has(e.seriesId)){i.add(e.seriesId);let[t,a]=await Promise.all([K.series.get(e.seriesId),K.episodes.get(e.id)]);if(t&&a){let i=`S${mu(a.season)}E${mu(a.episode)}`;r.push({key:`c${a.id}`,id:t.id,title:`${t.name} · ${i}`,poster:t.poster||a.poster,rating:null,progress:n,episode:a,item:t,updated:e.updated})}}}return r}var mu=e=>e<10?`0${e}`:`${e}`,hu=new Map;async function gu(e,t,n){let r=`${e}|${t}|${n}`,i=hu.get(r);if(i)return i;let a=new Map;await su(t).where(`providerId`).equals(e).each(e=>{if(e.genre)for(let t of e.genre.split(/[,/|&]/)){let e=t.trim();if(e.length<2||e.length>30)continue;let n=e.toLowerCase(),r=a.get(n);r?r.n++:a.set(n,{name:e,n:1})}});let o=[...a.values()].sort((e,t)=>t.n-e.n).slice(0,30).map(e=>e.name);return hu.set(r,o),o}async function _u(e){let t=new Map;for(let n of e){if(n.adult)continue;let e=qs(n.name);if(!e)continue;let r=t.get(e.key);r?r.push(n.id):t.set(e.key,[n.id])}let n=[];for(let e of Ws){let r=t.get(e.key);if(!r)continue;let i=[];for(let e of r)i.push(...await du(e,3));let a=i.sort((e,t)=>t.added-e.added).map(e=>e.poster).filter(e=>!!e).slice(0,3);n.push({platform:e,posters:a,categoryIds:r})}return n}async function vu(e,t,n,r){let i;if(n.categoryIds){i=[];for(let e of n.categoryIds)i.push(...await du(e,1e5))}else i=await su(t).where(`providerId`).equals(e).toArray();if(n.genre){let e=n.genre.toLowerCase();i=i.filter(t=>!!t.genre&&t.genre.toLowerCase().indexOf(e)>=0)}let a=new Intl.Collator(void 0,{sensitivity:`base`}),o=(e,t)=>a.compare(e.name,t.name),s={added:(e,t)=>t.added-e.added||o(e,t),name:o,rating:(e,t)=>(t.rating||0)-(e.rating||0)||o(e,t),year:(e,t)=>(parseInt(t.year||`0`)||0)-(parseInt(e.year||`0`)||0)||o(e,t)};return i.sort(s[r])}async function yu(e,t){return su(t).where(`[providerId+vkey]`).equals([e.providerId,e.vkey]).toArray()}var bu=()=>Math.floor((Date.now()-new Date(new Date().getFullYear(),0,0).getTime())/864e5);function xu(e){let t=e.filter(e=>e.backdrop),n=(t.length?t:e).slice(0,10);return n.length?n[bu()%n.length]:null}async function Su(e,t,n=20){let r=[];return await su(t).where(`providerId`).equals(e).each(e=>{e.rating&&e.rating>0&&r.push(e)}),r.sort((e,t)=>t.rating-e.rating||t.added-e.added).slice(0,n)}async function Cu(e){let t=(await K.progress.where(`providerId`).equals(e).toArray()).filter(e=>e.kind===`episode`&&e.seriesId!==null).sort((e,t)=>t.updated-e.updated).slice(0,100),n=new Set,r=[];for(let e of t){if(r.length>=15)break;if(n.has(e.seriesId)||(n.add(e.seriesId),!e.watched))continue;let t=eu(await K.episodes.where(`seriesId`).equals(e.seriesId).toArray()),i=await K.progress.bulkGet(t.map(e=>e.id)),a=t.findIndex(t=>t.id===e.id),o=t.slice(a+1).find((e,t)=>{let n=i[a+1+t];return!n||!n.watched}),s=await K.series.get(e.seriesId);o&&s&&r.push({key:`u${o.id}`,id:s.id,title:`${s.name} · S${mu(o.season)}E${mu(o.episode)}`,poster:o.poster||s.poster,rating:null,episode:o,item:s})}return r}async function wu(e,t){let n=(await Ll(e,{type:t})).slice(0,t===`recent`?20:void 0),r=(await K.channels.bulkGet(n)).filter(e=>!!e);return Promise.all(r.map(async e=>({channel:e,now:(await al(e)).now})))}async function Tu(e){let t=Date.now(),n=new Date;n.getHours()>=2&&n.setDate(n.getDate()+1),n.setHours(2,0,0,0);let r=t-72e5,i=(await lu(e,`live`)).filter(e=>!e.adult&&Ys(e.name)===`SPORTS`),a=[];for(let e of i)if(a.push(...await K.channels.where(`[categoryId+number]`).between([e.id,os.minKey],[e.id,os.maxKey]).limit(300).toArray()),a.length>=300)break;let o=[],s=new Set,c=0;for(let e of a){let i=!!await K.epgLinks.get(e.id);if(!(!i&&c>=12)){i||c++;for(let i of await rl(e,r,n.getTime())){if(i.stop<=t||!Vs(i.title))continue;let n=`${ks(i.title)}|${Math.floor(i.start/6e4)}`;s.has(n)||(s.add(n),o.push({key:n,start:i.start,title:i.title,channel:e,channelName:e.name,live:i.start<=t}))}}}return o.sort((e,t)=>e.start-t.start).slice(0,20)}async function Eu(){let e=await K.reminders.where(`start`).above(Date.now()).limit(20).toArray(),t=await K.channels.bulkGet(e.map(e=>e.channelId));return e.map((e,n)=>({key:`r${e.id}`,start:e.start,title:e.title,channel:t[n]||null,channelName:e.channelName,live:!1}))}async function Du(e){let[t,n]=await Promise.all([lu(e,`movie`).then(e=>_u(e)),lu(e,`series`).then(e=>_u(e))]),r=t.map(e=>V(V({},e),{},{kind:`movie`}));for(let e of n)r.some(t=>t.platform.key===e.platform.key)||r.push(V(V({},e),{},{kind:`series`}));let i=e=>Ws.findIndex(t=>t.key===e);return r.sort((e,t)=>i(e.platform.key)-i(t.platform.key))}var Ou=`utopya.seriesSeen`,ku=()=>{try{return JSON.parse(localStorage.getItem(Ou)||`{}`)}catch(e){return{}}};function Au(e){let t=ku();t[e]=Date.now();try{localStorage.setItem(Ou,JSON.stringify(t))}catch(e){}}var ju=Date.UTC(2001,0,1);async function Mu(e){let t=await K.favorites.where(`[providerId+kind]`).equals([e,`series`]).toArray(),n=await K.series.bulkGet(t.map(e=>e.id)),r=ku(),i=[];for(let e=0;e<t.length;e++){let a=n[e];if(!a||a.added<ju)continue;let o=Math.max(t[e].order,r[a.id]||0);await K.progress.where(`seriesId`).equals(a.id).each(e=>{e.updated>o&&(o=e.updated)}),a.added>o&&i.push(a)}return i.sort((e,t)=>t.added-e.added).slice(0,20)}var Nu=e=>e.split(/[,/|&]/).map(e=>e.trim()).filter(e=>e.length>=2&&e.length<=30);function Pu(e,t){let n=e.slice(),r=t,i=()=>{r=r+1831565813|0;let e=Math.imul(r^r>>>15,1|r);return e=e+Math.imul(e^e>>>7,61|e)^e,((e^e>>>14)>>>0)/4294967296};for(let e=n.length-1;e>0;e--){let t=Math.floor(i()*(e+1)),r=n[e];n[e]=n[t],n[t]=r}return n}async function Fu(e){let t=(await K.progress.where(`providerId`).equals(e).toArray()).filter(e=>e.kind===`movie`&&e.position>0);if(!t.length)return null;let n=new Map;for(let e of await K.movies.bulkGet(t.map(e=>e.id)))if(e&&e.genre)for(let t of Nu(e.genre)){let e=t.toLowerCase(),r=n.get(e);r?r.n++:n.set(e,{name:t,n:1})}let r=[];n.forEach((e,t)=>r.push({k:t,name:e.name}));let i=Iu(r,e=>n.get(e.k).n,2);if(!i.length)return null;let a=[];await K.movies.where(`providerId`).equals(e).each(e=>{if(!e.rating||e.rating<6||!e.genre)return;let t=e.genre.toLowerCase();i.some(e=>t.indexOf(e.k)>=0)&&a.push(e)});let o=await K.progress.bulkGet(a.map(e=>e.id)),s=a.filter((e,t)=>!o[t]||!o[t].watched).sort((e,t)=>t.rating-e.rating||t.added-e.added).slice(0,60),c=new Date;return{genres:i.map(e=>e.name),items:Pu(s,bu()+c.getFullYear()*1e3).slice(0,12)}}function Iu(e,t,n){return e.map((e,t)=>({x:e,i:t})).sort((e,n)=>t(n.x)-t(e.x)||e.i-n.i).slice(0,n).map(e=>e.x)}async function Lu(e){let t=Date.now(),n=t+18e5,r=(await Ll(e,{type:`fav`})).slice(0,30),i=(await K.channels.bulkGet(r)).filter(e=>!!e),a=[];for(let e of i)for(let r of await rl(e,t,n))r.start>t&&r.start<=n&&a.push({key:`s${r.id}`,start:r.start,title:r.title,channel:e,channelName:e.name,live:!1,program:r});return a.sort((e,t)=>e.start-t.start).slice(0,20)}var Ru=I(null),zu=I(new Set),Bu=6e4;async function Vu(){zu.value=new Set(await K.reminders.toCollection().primaryKeys())}async function Hu(e,t,n=0){let r=!await K.reminders.get(e.id)||n!==0;return r?await K.reminders.put({id:e.id,providerId:t.providerId,channelId:t.id,channelName:t.name,title:e.title,start:e.start,stop:e.stop,repeat:n}):await K.reminders.delete(e.id),await Vu(),r}var Uu=async e=>{await K.reminders.delete(e),await Vu()},Wu={1:864e5,2:6048e5};function Gu(){Vu();let e=async()=>{if(Ru.peek())return;let e=await K.reminders.where(`start`).belowOrEqual(Date.now()+Bu).first();if(e){if(await K.reminders.delete(e.id),e.repeat){let t=Wu[e.repeat],n=e.start+t;for(;n<Date.now();)n+=t;await K.reminders.put(V(V({},e),{},{id:-n,start:n,stop:e.stop===void 0?void 0:e.stop+(n-e.start)}))}await Vu(),e.start>Date.now()-6e5&&(Ru.value=e)}};e(),setInterval(e,15e3)}function Ku({src:e,size:t}){return j(`span`,{class:`channel-logo`,style:{width:`${t*1.4/10}rem`,height:`${t/10}rem`},children:e&&j(`img`,{src:e,alt:``,onError:e=>e.currentTarget.style.visibility=`hidden`})})}function qu({value:e,class:t}){return j(`span`,{class:`progress-line ${t||``}`,children:j(`span`,{style:{width:`${Math.round(e*100)}%`}})})}function Ju({text:e,active:t}){let n=F(null),r=F(null);return P(()=>{let e=n.current,i=r.current,a=i.scrollWidth-e.clientWidth;t&&a>0?(i.style.setProperty(`--marquee`,`${-a}px`),i.style.animationDuration=`${Math.max(3,a/40)}s`,i.classList.add(`run`)):i.classList.remove(`run`)},[t,e]),j(`span`,{class:`marquee`,ref:n,children:j(`span`,{ref:r,children:e})})}function Yu(e){let t=e.channel;return j(`button`,{onlongpress:e.onLongPress,class:`channel-row focus-row ${e.current?`selected`:`idle`}${e.compact?` compact`:``}`,"data-focus":!0,"data-idx":e.index,"data-focus-default":e.focused||void 0,style:{top:`${e.index*e.pitch}rem`},onClick:e.onClick,children:[e.number!==null&&j(`span`,{class:`ch-number`,children:e.number}),e.compact?j(Ku,{src:t?t.logo:null,size:30}):j(`span`,{class:`ch-logo-box`,children:j(Ku,{src:t?t.logo:null,size:44})}),j(`span`,{class:`ch-text`,children:[j(`span`,{class:`ch-name`,children:[j(Ju,{text:t?t.name:``,active:e.marquee}),e.favorite&&j(z,{name:`star`,class:`fav-star`})]}),e.program&&j(`span`,{class:`ch-program`,children:e.program.title}),e.program&&!e.compact&&j(qu,{value:dl(e.program),class:`ch-progress`})]})]})}var Xu=I({type:`all`}),Zu=I(``),Qu=I(null),$u=I(null),ed=I(new Set);async function td(e){let t=await K.favorites.where(`[providerId+kind]`).equals([e,`live`]).primaryKeys();ed.value=new Set(t)}var nd=I([]);function rd(e){let t=document.activeElement;nd.value=[...nd.value,{page:e,restore:t}],t&&t!==document.body&&t.blur()}function id(){let e=nd.value;if(!e.length)return;let t=e[e.length-1];nd.value=e.slice(0,-1),setTimeout(()=>t.restore&&t.restore.isConnected&&t.restore.focus(),0)}var ad=e=>{let t=nd.value;nd.value=[...t.slice(0,-1),{page:e,restore:t.length?t[t.length-1].restore:null}]},Y=I(`home`),od=I(`live`),sd=0;function cd(e,t,n){$u.value={ids:e,index:t,archive:n,seq:++sd},Y.value!==`player`&&(od.value=Y.value),Y.value=`player`}var ld=()=>{Y.value=od.value};function ud(e){let{pager:t,count:n,index:r}=e,[i,a]=N(new Map),[o,s]=N(0),c=e.listRef,l=e.compact?6:7.2,u=c.current?Math.ceil(c.current.clientHeight/fd()/l):10;P(()=>{let e=o;r<o+2?e=Math.max(0,r-2):r>o+u-1-2&&(e=Math.max(0,Math.min(n-u,r-u+1+2))),e!==o&&s(e)},[r,n,u]);let d=Math.max(0,o-3),f=Math.min(n,o+u+3);P(()=>{if(!t)return;let e=!0;return t.range(d,f).then(t=>{if(!e)return;let n=new Map;t.forEach((e,t)=>n.set(d+t,e)),a(n)}),()=>{e=!1}},[t,d,f]),P(()=>{c.current&&(c.current.scrollTop=o*l*fd())},[o]);let[p,m]=N(new Map),h=hl.value;P(()=>{let e=!0,t=[...i.values()].filter(e=>!!e),n=()=>{let e=new Map;for(let n of t){let t=dd.get(n.id);t&&t.tick===h&&e.set(n.id,t.now)}return e};m(n());let r=t.filter(e=>{let t=dd.get(e.id);return!t||t.tick!==h});if(!r.length)return;let a=setTimeout(()=>{Promise.all(r.map(e=>al(e).then(t=>{dd.set(e.id,{tick:h,now:t.now})}))).then(()=>{e&&m(n())})},300);return()=>{e=!1,clearTimeout(a)}},[i,h]),P(()=>{if(!e.focused||!c.current)return;let t=c.current.querySelector(`[data-idx="${r}"]`);t&&document.activeElement!==t&&t.focus()},[r,d]),Bt(t=>{if(!c.current||!c.current.contains(document.activeElement))return;let i=t===`up`?-1:t===`down`?1:t===`chUp`?-u:t===`chDown`?u:0;if(!i)return;let a=Math.max(0,Math.min(n-1,r+i));return a!==r&&e.setIndex(a),!0});let g=ed.value,_=[];for(let t=d;t<f;t++){let n=i.get(t);_.push(j(Yu,{compact:e.compact,current:t===e.current,pitch:l,channel:n,index:t,number:e.numberOf(n,t),favorite:!!n&&g.has(n.id),program:n&&p.get(n.id)||null,focused:t===r,marquee:e.focused&&t===r,onClick:()=>e.onOpen(t),onLongPress:()=>e.onMenu(t)},t))}return j(`div`,{class:`channel-list${e.compact?` compact`:``}`,ref:c,"data-focus-group":e.group,"data-focus-noscroll":!0,children:j(`div`,{class:`channel-list-inner`,style:{height:`${n*l}rem`},children:_})})}var dd=new Map,fd=()=>parseFloat(getComputedStyle(document.documentElement).fontSize),pd=e=>e&&e>0?`★ ${Math.round(e*10)/10}`:null,md=e=>e.item?{"data-hero-kind":`url`in e.item?`movie`:`series`,"data-hero-id":String(e.item.id),"data-hero-ep":e.episode?String(e.episode.id):void 0}:{},hd=e=>{let t=e.item,n=t?t.name:e.title;return[e.rating&&e.rating>0?`★ ${e.rating.toFixed(1)}`:null,t&&t.year&&n.indexOf(`(${t.year})`)<0?t.year:null].filter(Boolean).join(` · `)},gd=e=>{if(e.episode)return`S${mu(e.episode.season)}E${mu(e.episode.episode)}`;let t=e.item;if(!t)return``;let n=t.genre?t.genre.split(/[,/|&]/)[0].trim():``;return[t.year,n].filter(Boolean).join(` · `)};function _d(e){let t=e.card;return j(`button`,V(V({onlongpress:e.onLongPress,class:`poster-card plain`,"data-focus":!0,"data-focus-initial":e.initial||void 0,"data-info-title":t.item?t.item.name:t.title,"data-info-meta":hd(t)},md(t)),{},{onClick:e.onClick,children:t.poster&&j(sn,{src:nn(t.poster,342),onError:e=>e.currentTarget.style.display=`none`})}))}function vd(e){let t=e.card,n=t.item,r=n&&`backdrop`in n?n.backdrop:null,i=t.episode&&t.episode.poster||r||t.poster,a=gd(t);return j(`button`,V(V({onlongpress:e.onLongPress,class:`wide-card`,"data-focus":!0,"data-focus-initial":e.initial||void 0},md(t)),{},{onClick:e.onClick,children:[i&&j(sn,{src:nn(i,780),onError:e=>e.currentTarget.style.display=`none`}),j(`span`,{class:`wc-shade`}),j(`span`,{class:`wc-text`,children:[j(`span`,{class:`wc-title`,children:n?n.name:t.title}),a&&j(`span`,{class:`wc-sub`,children:a})]}),t.badge&&j(`span`,{class:`wc-badge`,children:t.badge}),!!t.progress&&j(`span`,{class:`poster-progress wc-progress`,children:j(`span`,{style:{width:`${Math.round(t.progress*100)}%`}})})]}))}function yd(e){return e.kind===`movie`?j(_d,V({},e)):j(vd,V({},e))}function bd({onClick:e,wide:t}){return j(`button`,{class:`${t?`wide-card`:`poster-card plain`} see-all`,"data-focus":!0,onClick:e,children:R(`shelf_see_all`)})}function xd({p:e,class:t}){let n=Js(e);return n?j(`img`,{class:`${t||``}${e.tintWhite===!1?` own-color`:` tint-white`}`,src:n,alt:e.name}):j(`b`,{class:t,children:e.name})}function Sd({tile:e,onClick:t,initial:n}){let r=e.platform;return j(`button`,{class:`platform-tile`,"data-focus":!0,"data-focus-initial":n||void 0,onClick:t,children:[j(`span`,{class:`pt-collage`,children:e.posters.map(e=>j(sn,{src:nn(e,342)},e))}),j(`span`,{class:`pt-shade`,style:{background:`linear-gradient(rgba(0,0,0,.35), rgba(0,0,0,.7) 60%, ${Cd(r.color,.85)})`}}),j(`span`,{class:`pt-logo`,children:j(xd,{p:r})})]})}var Cd=(e,t)=>{let n=parseInt(e.slice(1),16);return`rgba(${n>>16},${n>>8&255},${n&255},${t})`},wd=e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);function Td(e,t){let n=new RegExp(wd(t.name),`i`),r=n.test(e)?n:new RegExp(t.keywords.map(e=>wd(e.trim())).filter(Boolean).join(`|`),`i`);return e.replace(r,``).replace(/^[\s·|\-:/+]+|[\s·|\-:/]+$/g,``)||e}function Ed({title:e,children:t,info:n,cls:r}){let i=F(null),[a,o]=N(null);P(()=>{let e=i.current,t=t=>{let n=t.target;e.scrollLeft=Math.max(0,n.offsetLeft-1.6*fd());let r=n.getAttribute(`data-info-title`);o(r?{title:r,meta:n.getAttribute(`data-info-meta`)||``}:null)},n=()=>setTimeout(()=>{e.contains(document.activeElement)||o(null)},0);return e.addEventListener(`focusin`,t),e.addEventListener(`focusout`,n),()=>{e.removeEventListener(`focusin`,t),e.removeEventListener(`focusout`,n)}},[]);let[s,c]=Oe(()=>{let t=qs(e);return[t,t?Td(e,t):e]},[e]);return j(`section`,{class:r?`shelf ${r}`:`shelf`,children:[j(`h2`,{class:`shelf-title`,children:[s&&j(`span`,{class:`shelf-logo`,children:j(xd,{p:s})}),c]}),j(`div`,{class:`shelf-row`,ref:i,"data-focus-group":`shelf-${e}`,children:t}),n&&j(`p`,{class:`shelf-info`,children:[a&&j(`b`,{children:a.title}),a&&a.meta&&j(`span`,{children:` ${a.meta}`})]})]})}var Dd=8;function Od(e,t){t.episode?rd({name:`vod`,kind:`episode`,id:t.episode.id,seriesId:t.id}):t.progress!==void 0&&e===`movie`?rd({name:`vod`,kind:`movie`,id:t.id}):rd(e===`movie`?{name:`movie`,id:t.id}:{name:`series`,id:t.id})}function kd({kind:e}){var t;let n=kc.value,r=((t=(Oc.value||[]).find(e=>e.id===n))==null?void 0:t.lastSync)||0,[i,a]=N(null),[o,s]=N(null),[c,l]=N(0),u=nd.value.length,d=F(!1);P(()=>{u===0&&d.current&&l(e=>e+1),d.current=u>0},[u]);let[f,p]=N(Dd),m=F([]),h=F(!1),g=F(``);P(()=>{let t=!0;return g.current!==`${n}|${e}|${r}`&&p(Dd),(async()=>{let i=(await lu(n,e)).filter(e=>!e.adult);m.current=i;let[o,s,c,l]=await Promise.all([pu(n,e),_u(i),fu(n,e),uu(n,e)]),u={cont:o,tiles:s,favs:c,recent:l,genres:[],cats:[],next:0};if(!t)return;let d=g.current===`${n}|${e}|${r}`;g.current=`${n}|${e}|${r}`,a(d?e=>e?V(V({},u),{},{genres:e.genres,cats:e.cats,next:e.next}):u:u);let[f,p]=await Promise.all([gu(n,e,r),ou(u.cont)]);t&&a(e=>e&&V(V({},e),{},{genres:f,cont:p}))})(),()=>{t=!1}},[n,e,r,c]),P(()=>{if(!i||h.current||i.cats.length>=f||i.next>=m.current.length)return;h.current=!0;let e=!0;return(async()=>{let t=[],n=i.next,r=m.current;for(;n<r.length&&i.cats.length+t.length<f;){let e=await du(r[n].id,20);e.length&&t.push({c:r[n],items:e}),n++}h.current=!1,e&&a(e=>e&&V(V({},e),{},{cats:[...e.cats,...t],next:n}))})(),()=>{e=!1,h.current=!1}},[i,f]);let _=e=>{let t=e.target.closest(`.cat-shelf`);t&&i&&Array.prototype.indexOf.call(t.parentElement.querySelectorAll(`.cat-shelf`),t)>=i.cats.length-3&&p(e=>Math.max(e,i.cats.length+Dd))};if(!i)return null;if(!i.cats.length&&!i.recent.length&&!i.cont.length)return j(`p`,{class:`empty`,children:R(`vod_empty`)});let v=async(t,r)=>{let i=t.item;if(!i)return;let a=[],o=()=>l(e=>e+1);if(!(e===`series`&&r)){let t=!!await K.favorites.get(i.id);a.push({label:R(t?`vod_remove_favorite`:`vod_add_favorite`),onSelect:async()=>{await Bl(n,e,i.id),o()}})}if(e===`movie`&&a.push({label:R(`vod_mark_watched`),onSelect:async()=>{await ru(`movie`,i.id,n,null,!0),o()}},{label:R(`vod_mark_unwatched`),onSelect:async()=>{await ru(`movie`,i.id,n,null,!1),o()}}),r){let e=t.episode?t.episode.id:i.id;a.push({label:R(`menu_remove_continue`),onSelect:async()=>{await K.progress.delete(e),o()}})}s({title:t.title,items:a})},y=!1,b=()=>y?!1:y=!0;return j(`div`,{class:`vod-home`,onFocusCapture:_,children:[i.cont.length>0&&j(Ed,{title:R(`shelf_continue`),children:i.cont.map(t=>j(vd,{card:t,initial:b(),onClick:()=>Od(e,t),onLongPress:()=>v(t,!0)},t.key))}),i.tiles.length>0&&j(Ed,{title:R(`shelf_platforms`),children:i.tiles.map(t=>j(Sd,{tile:t,initial:b(),onClick:()=>rd({name:`browse`,kind:e,title:t.platform.name,filter:{categoryIds:t.categoryIds,platformKey:t.platform.key}})},t.platform.key))}),i.favs.length>0&&j(Ed,{title:R(`shelf_favorites`),info:e===`movie`,children:i.favs.map(t=>{let n=cu(t);return j(yd,{kind:e,card:n,initial:b(),onClick:()=>Od(e,n),onLongPress:()=>v(n,!1)},n.key)})}),i.recent.length>0&&j(Ed,{title:R(`shelf_recent`),info:e===`movie`,children:[i.recent.map(t=>{let n=cu(t);return j(yd,{kind:e,card:n,initial:b(),onClick:()=>Od(e,n),onLongPress:()=>v(n,!1)},n.key)}),j(bd,{wide:e===`series`,onClick:()=>rd({name:`browse`,kind:e,title:R(`browse_all`),filter:{all:!0}})})]}),i.genres.length>0&&j(Ed,{title:R(`shelf_genres`),children:i.genres.map(t=>j(`button`,{class:`chip genre-chip`,"data-focus":!0,onClick:()=>rd({name:`browse`,kind:e,title:t,filter:{genre:t}}),children:t},t))}),i.cats.map(({c:t,items:n})=>j(Ed,{cls:`cat-shelf`,title:zs(t.name,q.value.filterWords),info:e===`movie`,children:[n.map(t=>{let n=cu(t);return j(yd,{kind:e,card:n,onClick:()=>Od(e,n),onLongPress:()=>v(n,!1)},n.key)}),j(bd,{wide:e===`series`,onClick:()=>rd({name:`browse`,kind:e,title:t.name,filter:{categoryIds:[t.id]}})})]},t.id)),o&&j(mn,{title:o.title,items:o.items,onClose:()=>s(null)})]})}var Ad=350,jd=()=>{let e=new Date().getHours();return R(e>=5&&e<=11?`home_greeting_morning`:e>=12&&e<=17?`home_greeting_day`:`home_greeting_evening`)};function Md({providerId:e}){let t=Oc.value||[],n=t.find(t=>t.id===e),[r,i]=N(null),[a,o]=N(null),[s,c]=N(0),l=F(null),u=F(null),d=F(null),f=Oe(()=>I(null),[]),p=F(void 0),m=F(!1),h=()=>c(e=>e+1),g=nd.value.length,_=F(!1);P(()=>{g===0&&_.current&&h(),_.current=g>0},[g]),P(()=>{let t=!0;(async()=>{let[r,a,o,s,c,l,u,d,f,p,m,h,g,_]=await Promise.all([pu(e,`movie`),pu(e,`series`),Su(e,`movie`),Du(e),Cu(e),Mu(e),Fu(e),gu(e,`movie`,n&&n.lastSync||0),wu(e,`fav`),wu(e,`recent`),Eu(),uu(e,`movie`,20),uu(e,`series`,20),Su(e,`series`)]),v={hero:xu(o),cont:[...r,...a].sort((e,t)=>(t.updated||0)-(e.updated||0)).slice(0,20),up:c,newEps:l.map(e=>V(V({},cu(e)),{},{key:`n${e.id}`,badge:R(`home_new_episode_badge`)})),forYou:u,soon:[],genres:d,favs:f,recents:p,tonight:[],schedule:m,tiles:s,newMovies:h,newSeries:g,topMovies:o,topSeries:_};if(!t)return;i(v);let y=await ou(v.cont);y!==v.cont&&t&&(v.cont=y,i(V({},v)));let b=await Lu(e);t&&i(V(V({},v),{},{soon:b}));let x=await Tu(e);t&&i(V(V({},v),{},{soon:b,tonight:x}))})();let r=()=>h();return window.addEventListener(`utopya:progress`,r),()=>{t=!1,window.removeEventListener(`utopya:progress`,r)}},[e,n&&n.lastSync,s]),P(()=>{let e=()=>{m.current=!0};return document.addEventListener(`keydown`,e,!0),()=>document.removeEventListener(`keydown`,e,!0)},[]);let v=F(Date.now()),y=F(!1),x=F(void 0);P(()=>{r&&!y.current&&(y.current=!0,x.current=window.setTimeout(()=>{if(m.current||nd.peek().length)return;let e=document.activeElement;(!e||e===document.body||e.closest(`.topbar`))&&L(d.current)},Math.max(0,1200-(Date.now()-v.current))))},[r]),P(()=>()=>clearTimeout(x.current),[]);let S=async(t,n)=>{let r=await Ll(e,{type:t}),i=r.indexOf(n);i>=0&&cd(r,i)},ee={HERO:()=>null,CONTINUE:()=>r.cont.length?j(Ed,{title:R(`shelf_continue`),children:r.cont.map(e=>j(vd,{card:e,onClick:()=>Od(e.episode?`series`:`movie`,e),onLongPress:()=>o({title:e.title,items:[{label:R(`menu_open`),onSelect:()=>Od(e.episode?`series`:`movie`,e)},{label:R(`menu_remove_continue`),onSelect:async()=>{await K.progress.delete(e.episode?e.episode.id:e.id),h()}}]})},e.key))}):null,UP_NEXT:()=>r.up.length?j(Ed,{title:R(`home_up_next`),children:r.up.map(e=>{let t=()=>rd({name:`vod`,kind:`episode`,id:e.episode.id,seriesId:e.id,startMs:0});return j(vd,{card:e,onClick:t,onLongPress:()=>o({title:e.title,items:[{label:R(`menu_open`),onSelect:t},{label:R(`menu_remove_up_next`),onSelect:async()=>{await K.progress.where(`seriesId`).equals(e.id).delete(),h()}}]})},e.key)})}):null,NEW_EPISODES:()=>r.newEps.length?j(Ed,{title:R(`home_new_episodes`),children:r.newEps.map(e=>j(vd,{card:e,onClick:()=>rd({name:`series`,id:e.id}),onLongPress:()=>o({title:e.title,items:[{label:R(`home_dismiss_new`),onSelect:()=>{Au(e.id),h()}}]})},e.key))}):null,FOR_YOU:()=>r.forYou&&r.forYou.items.length?D(R(`home_for_you_genres`,r.forYou.genres.join(`, `)),r.forYou.items,`movie`):null,STARTING_SOON:()=>r.soon.length?j(Ed,{title:R(`home_starting_soon`),children:r.soon.map(e=>j(Ld,{pc:e,badge:zu.value.has(e.program.id)?R(`home_reminder_badge`):void 0,onClick:async()=>B(R(await Hu(e.program,e.channel)?`guide_reminder_set`:`guide_reminder_removed`)),onLongPress:()=>o({title:e.title,items:[{label:R(`home_open_channel`),onSelect:()=>S(`fav`,e.channel.id)}]})},e.key))}):null,GENRES:()=>r.genres.length?j(Ed,{title:R(`home_genres`),children:r.genres.map(e=>j(`button`,{class:`chip genre-chip`,"data-focus":!0,onClick:()=>rd({name:`browse`,kind:`movie`,title:e,filter:{genre:e}}),children:e},e))}):null,FAVORITE_CHANNELS:()=>r.favs.length?j(Ed,{title:R(`home_favorite_channels`),children:r.favs.map(t=>j(Id,{cc:t,onClick:()=>S(`fav`,t.channel.id),onLongPress:()=>o({title:t.channel.name,items:[{label:R(`menu_remove_favorite`),onSelect:async()=>{await Bl(e,`live`,t.channel.id),h()}}]})},t.channel.id))}):null,RECENT_CHANNELS:()=>r.recents.length?j(Ed,{title:R(`home_recent_channels`),children:r.recents.map(e=>j(Id,{cc:e,onClick:()=>S(`recent`,e.channel.id),onLongPress:()=>o({title:e.channel.name,items:[{label:R(`menu_remove_recent`),onSelect:async()=>{await K.recents.delete(e.channel.id),h()}}]})},e.channel.id))}):null,TONIGHT_SPORTS:()=>r.tonight.length?j(Ed,{title:R(`home_tonight`),children:r.tonight.map(e=>j(Ld,{pc:e,onClick:()=>e.channel&&S(`all`,e.channel.id)},e.key))}):null,SCHEDULE:()=>r.schedule.length?j(Ed,{title:R(`home_schedule`),children:r.schedule.map(e=>j(Ld,{pc:e,onClick:()=>e.channel&&S(`all`,e.channel.id)},e.key))}):null,PLATFORMS:()=>r.tiles.length?j(Ed,{title:R(`shelf_platforms`),children:r.tiles.map(e=>j(Sd,{tile:e,onClick:()=>rd({name:`browse`,kind:e.kind,title:e.platform.name,filter:{categoryIds:e.categoryIds,platformKey:e.platform.key}})},e.platform.key))}):null,NEW_MOVIES:()=>D(R(`home_new_movies`),r.newMovies,`movie`),NEW_SERIES:()=>D(R(`home_new_series`),r.newSeries,`series`),TOP_RATED:()=>r.topMovies.length||r.topSeries.length?j(b,{children:[D(R(`home_top_movies`),r.topMovies,`movie`),D(R(`home_top_series`),r.topSeries,`series`)]}):null},C=r?q.value.homeShelves.filter(e=>e in ee).map(e=>({k:e,el:ee[e]()})).filter(e=>e.el):[],w=r&&r.hero?{kind:`movie`,item:r.hero}:null,te=(vt(()=>!!f.value).value||!!w)&&q.value.homeShelves.indexOf(`HERO`)>=0,T=e=>{let t=e.target,n=t.closest(`.shelf`),r=u.current,i=d.current;if(te&&n&&r&&i){let e=r.clientHeight-parseFloat(getComputedStyle(r).paddingBottom);i.style.transform=`translateY(${-Math.min(n.offsetTop,Math.max(0,i.offsetHeight-e))}px)`}let a=t.closest(`[data-hero-id]`);if(!a)return;clearTimeout(p.current);let o=a.getAttribute(`data-hero-kind`),s=+a.getAttribute(`data-hero-id`),c=a.getAttribute(`data-hero-ep`);p.current=window.setTimeout(async()=>{if(o===`movie`){let e=await K.movies.get(s);e&&(f.value={kind:o,item:await Ql(e)})}else{let e=await K.series.get(s);if(!e)return;let t=await $l(e);f.value={kind:o,item:t.series,episode:c?t.episodes.find(e=>e.id===+c):void 0}}},Ad)};P(()=>()=>clearTimeout(p.current),[]),P(()=>{!te&&d.current&&(d.current.style.transform=``)},[te]),Bt(e=>{if(!te||e!==`up`&&e!==`down`||!d.current)return;let t=document.activeElement;if(!t||!d.current.contains(t))return;let n=Array.prototype.slice.call(d.current.querySelectorAll(`.shelf`)),r=n[n.indexOf(t.closest(`.shelf`))+(e===`up`?-1:1)];if(!r)return e===`down`||void 0;let i=r.querySelector(`.shelf-row`);return Pt(i&&It(i))});let E=j(`div`,{class:`home-actions`,children:[j(`button`,{class:`round-btn`,"data-focus":!0,"aria-label":R(`home_edit`),title:R(`home_edit`),onClick:()=>rd({name:`homeEdit`}),children:j(z,{name:`edit`})}),t.length>1&&j(`button`,{class:`btn outline`,"data-focus":!0,onClick:()=>o({title:R(`home_switch_source`),items:t.map(t=>({label:t.name,checked:t.id===e,onSelect:()=>Nc(t.id)}))}),children:R(`home_switch_source`)})]});return j(`div`,{class:`home${te?` with-hero`:``}`,ref:l,children:[te?j(Fd,{hero:f,fallback:w,actions:E}):j(`div`,{class:`home-head`,children:[j(`h1`,{children:jd()}),n&&j(`span`,{class:`muted`,children:` · ${n.name}`}),j(`span`,{class:`spacer`}),E]}),j(`div`,{class:`home-shelves`,ref:u,"data-focus-noscroll":te||void 0,onFocusCapture:T,onScroll:te?e=>{e.currentTarget.scrollTop=0}:void 0,children:j(`div`,{class:`home-list`,ref:d,children:[r&&!C.length&&j(`p`,{class:`home-empty`,children:R(`home_empty`)}),C.map(e=>j(`div`,{class:`home-block`,children:e.el},e.k))]})}),a&&j(mn,{title:a.title,items:a.items,onClose:()=>o(null)})]});function D(e,t,n){return t.length?n===`series`?j(Ed,{title:e,children:t.map(e=>{let t=cu(e);return j(vd,{card:t,onClick:()=>Od(n,t)},t.key)})}):j(Ed,{title:e,children:t.map(e=>{let t=cu(e);return j(_d,{card:t,onClick:()=>Od(n,t)},t.key)})}):null}}var Nd=e=>e.split(` / `)[0].replace(/\s*\(\d{4}\)\s*$/,``);async function Pd(e){if(e.kind===`movie`){rd({name:`vod`,kind:`movie`,id:e.item.id});return}let t=e.episode||(await $l(e.item)).episodes[0];rd(t?{name:`vod`,kind:`episode`,id:t.id,seriesId:e.item.id}:{name:`series`,id:e.item.id})}function Fd({hero:e,fallback:t,actions:n}){let r=e.value||t;if(!r)return null;let i=r.item,a=i.backdrop||i.poster,o=a&&nn(a,1280),s=i.rating&&i.rating>0?i.rating.toFixed(1):null,c=i.genre?i.genre.split(/[,/|&]/).map(e=>e.trim()).filter(Boolean).slice(0,2).join(` · `):``;return j(`div`,{class:`hero2`,children:[j(`div`,{class:`hero2-bg`,children:o&&j(`img`,{src:o,alt:``},o)}),j(`div`,{class:`hero2-actions`,children:n}),j(`div`,{class:`hero2-info`,children:[j(`span`,{class:`hero2-kind`,children:R(r.kind===`movie`?`home_kind_movie`:`home_kind_series`)}),j(`h2`,{class:`hero2-title`,children:Nd(i.name)}),j(`p`,{class:`hero2-meta`,children:[s&&j(`b`,{children:`★ ${en.value===`tr`?s.replace(`.`,`,`):s}`}),i.year&&j(`span`,{children:i.year}),c&&j(`span`,{children:c})]}),j(`p`,{class:`hero2-plot`,children:i.plot||``}),j(`div`,{class:`row hero2-buttons`,"data-focus-group":`hero`,children:[j(`button`,{class:`btn primary`,"data-focus":!0,"data-focus-default":!0,onClick:()=>Pd(r),children:R(`vod_play`)}),j(`button`,{class:`btn outline`,"data-focus":!0,onClick:()=>rd(r.kind===`movie`?{name:`movie`,id:i.id}:{name:`series`,id:i.id}),children:R(`home_details`)})]})]})]})}function Id({cc:e,onClick:t,onLongPress:n}){let r=e.channel;return j(`div`,{class:`channel-tile`,children:[j(`button`,{onlongpress:n,class:`ct-card`,"data-focus":!0,onClick:t,children:r.logo?j(Ku,{src:r.logo,size:60}):j(`span`,{class:`ct-name-big`,children:r.name})}),j(`span`,{class:`ct-name`,children:r.name}),e.now&&j(b,{children:[j(`span`,{class:`ct-program`,children:e.now.title}),j(qu,{value:dl(e.now),class:`ct-progress`})]})]})}function Ld({pc:e,onClick:t,onLongPress:n,badge:r}){return j(`button`,{onlongpress:n,class:`program-tile`,"data-focus":!0,onClick:t,children:[j(`span`,{class:`pt-logo-box`,children:e.channel&&e.channel.logo&&j(Ku,{src:e.channel.logo,size:40})}),j(`span`,{class:`pt-text`,children:[j(`span`,{class:`pt-time`,children:[pl(e.start),e.live&&j(`span`,{class:`pt-badge`,children:R(`home_live_now`)}),r&&j(`span`,{class:`pt-badge reminder`,children:r})]}),j(`span`,{class:`pt-title`,children:e.title}),j(`span`,{class:`pt-channel`,children:e.channelName})]})]})}var Rd={_doc:`Ülke öneki → görünen ad [tr, en]. Chromium 56'da Intl.DisplayNames olmadığı için Tizen bu tabloyu kullanır; listede olmayan kod olduğu gibi gösterilir. Android cihaz yerel ayarını (Locale.displayCountry) kullanır; UK/EN → Birleşik Krallık, EX → Ex-YU kuralları aynı.`,countries:{TR:{tr:`Türkiye`,en:`Türkiye`},DE:{tr:`Almanya`,en:`Germany`},UK:{tr:`Birleşik Krallık`,en:`United Kingdom`},EN:{tr:`Birleşik Krallık`,en:`United Kingdom`},GB:{tr:`Birleşik Krallık`,en:`United Kingdom`},US:{tr:`Amerika Birleşik Devletleri`,en:`United States`},USA:{tr:`Amerika Birleşik Devletleri`,en:`United States`},CA:{tr:`Kanada`,en:`Canada`},FR:{tr:`Fransa`,en:`France`},IT:{tr:`İtalya`,en:`Italy`},ES:{tr:`İspanya`,en:`Spain`},PT:{tr:`Portekiz`,en:`Portugal`},NL:{tr:`Hollanda`,en:`Netherlands`},BE:{tr:`Belçika`,en:`Belgium`},AT:{tr:`Avusturya`,en:`Austria`},CH:{tr:`İsviçre`,en:`Switzerland`},PL:{tr:`Polonya`,en:`Poland`},RO:{tr:`Romanya`,en:`Romania`},BG:{tr:`Bulgaristan`,en:`Bulgaria`},GR:{tr:`Yunanistan`,en:`Greece`},AL:{tr:`Arnavutluk`,en:`Albania`},RS:{tr:`Sırbistan`,en:`Serbia`},HR:{tr:`Hırvatistan`,en:`Croatia`},BA:{tr:`Bosna-Hersek`,en:`Bosnia and Herzegovina`},MK:{tr:`Kuzey Makedonya`,en:`North Macedonia`},SI:{tr:`Slovenya`,en:`Slovenia`},HU:{tr:`Macaristan`,en:`Hungary`},CZ:{tr:`Çekya`,en:`Czechia`},SK:{tr:`Slovakya`,en:`Slovakia`},RU:{tr:`Rusya`,en:`Russia`},UA:{tr:`Ukrayna`,en:`Ukraine`},SE:{tr:`İsveç`,en:`Sweden`},NO:{tr:`Norveç`,en:`Norway`},DK:{tr:`Danimarka`,en:`Denmark`},FI:{tr:`Finlandiya`,en:`Finland`},IE:{tr:`İrlanda`,en:`Ireland`},AZ:{tr:`Azerbaycan`,en:`Azerbaijan`},GE:{tr:`Gürcistan`,en:`Georgia`},IR:{tr:`İran`,en:`Iran`},IQ:{tr:`Irak`,en:`Iraq`},AR:{tr:`Arap ülkeleri`,en:`Arabic`},ARA:{tr:`Arap ülkeleri`,en:`Arabic`},IN:{tr:`Hindistan`,en:`India`},PK:{tr:`Pakistan`,en:`Pakistan`},AF:{tr:`Afganistan`,en:`Afghanistan`},BR:{tr:`Brezilya`,en:`Brazil`},MX:{tr:`Meksika`,en:`Mexico`},LAT:{tr:`Latin Amerika`,en:`Latin America`},AU:{tr:`Avustralya`,en:`Australia`},NZ:{tr:`Yeni Zelanda`,en:`New Zealand`},CY:{tr:`Kıbrıs`,en:`Cyprus`},KU:{tr:`Kürtçe`,en:`Kurdish`},KUR:{tr:`Kürtçe`,en:`Kurdish`},EX:{tr:`Ex-YU`,en:`Ex-YU`},EXYU:{tr:`Ex-YU`,en:`Ex-YU`}}},zd=(e,t)=>e&&e!==`und`?e.toUpperCase():`#${t+1}`,Bd=class{constructor(e,t){rr(this,`av`,webapis.avplay),rr(this,`rect`,{x:0,y:0,w:window.innerWidth,h:window.innerHeight}),rr(this,`aspect`,`fit`),rr(this,`ev`,void 0),rr(this,`opened`,!1),rr(this,`subTimer`,void 0),rr(this,`token`,0),this.ev=t;let n=document.createElement(`object`);n.type=`application/avplayer`,n.style.cssText=`position:absolute;left:0;top:0;width:100%;height:100%`,e.appendChild(n)}open(e,t,n){this.stop();let r=++this.token,i=()=>r===this.token;try{if(this.av.open(e),this.opened=!0,t)try{this.av.setStreamingProperty(`USER_AGENT`,t)}catch(e){}this.av.setListener({onbufferingstart:()=>this.ev.onBuffering(!0),onbufferingcomplete:()=>this.ev.onBuffering(!1),onstreamcompleted:()=>this.ev.onEnded(),oncurrentplaytime:e=>this.ev.onTime(e),onerror:e=>this.ev.onError(String(e)),onevent:()=>{},onsubtitlechange:(e,t)=>{clearTimeout(this.subTimer),this.ev.onSubtitle(t||``),this.subTimer=window.setTimeout(()=>this.ev.onSubtitle(``),Number(e)||3e3)}}),this.applyRect(),this.av.prepareAsync(()=>{if(i()){if(this.applyRect(),n)try{this.av.seekTo(n)}catch(e){}this.av.play(),this.ev.onPlaying()}},e=>{i()&&this.ev.onError(String(e))})}catch(e){this.ev.onError(String(e))}}stop(){if(this.token++,this.opened){this.opened=!1;try{this.av.stop()}catch(e){}try{this.av.close()}catch(e){}}}pause(){try{this.av.pause()}catch(e){}}resume(){try{this.av.play()}catch(e){}}seek(e){try{this.av.seekTo(Math.max(0,e))}catch(e){}}setRect(e){this.rect=e,this.applyRect()}setAspect(e){this.aspect=e,this.applyRect()}applyRect(){if(!this.opened)return;let e=1920/window.innerWidth,{x:t,y:n,w:r,h:i}=this.rect;this.aspect===`zoom`&&(t-=r/6,n-=i/6,r*=4/3,i*=4/3);try{this.av.setDisplayMethod(this.aspect===`fill`?`PLAYER_DISPLAY_MODE_FULL_SCREEN`:`PLAYER_DISPLAY_MODE_LETTER_BOX`),this.av.setDisplayRect(Math.round(t*e),Math.round(n*e),Math.round(r*e),Math.round(i*e))}catch(e){}}tracks(e){try{return this.av.getTotalTrackInfo().filter(t=>t.type===e).map((e,t)=>{let n=``;try{n=JSON.parse(e.extra_info).language||``}catch(e){}return{index:e.index,language:n,label:zd(n,t)}})}catch(e){return[]}}audioTracks(){return this.tracks(`AUDIO`)}textTracks(){return this.tracks(`TEXT`)}selectAudio(e){try{this.av.setSelectTrack(`AUDIO`,e)}catch(e){}}selectText(e){try{e===null?this.av.setSilentSubtitle(!0):(this.av.setSilentSubtitle(!1),this.av.setSelectTrack(`TEXT`,e))}catch(e){}}videoHeight(){try{let e=this.av.getTotalTrackInfo().find(e=>e.type===`VIDEO`);return e?JSON.parse(e.extra_info).Height|0:0}catch(e){return 0}}duration(){try{return this.av.getDuration()||0}catch(e){return 0}}buffered(){return 0}setSpeed(e){try{e===Math.round(e)&&this.av.setSpeed(e)}catch(e){}}},Vd=class{constructor(e,t){rr(this,`video`,void 0),rr(this,`hls`,null),rr(this,`ts`,null),rr(this,`ev`,void 0),rr(this,`token`,0),this.ev=t;let n=document.createElement(`video`);n.style.cssText=`position:absolute;background:#000`,n.autoplay=!0,n.addEventListener(`waiting`,()=>t.onBuffering(!0)),n.addEventListener(`playing`,()=>{t.onBuffering(!1),t.onPlaying()}),n.addEventListener(`ended`,()=>t.onEnded()),n.addEventListener(`timeupdate`,()=>t.onTime(n.currentTime*1e3)),n.addEventListener(`error`,()=>t.onError(n.error?`media ${n.error.code}`:`media`)),e.appendChild(n),this.video=n,this.setRect({x:0,y:0,w:0,h:0})}open(e,t,n){this.stop(),++this.token;let r=this.video;!/\.m3u8(\?|$)/i.test(e)&&/\.ts(\?|$)/i.test(e),r.src=sr(e),r.addEventListener(`loadedmetadata`,()=>{n&&(r.currentTime=n/1e3)},{once:!0})}stop(){this.token++,this.hls&&(this.hls.destroy(),this.hls=null),this.ts&&(this.ts.destroy(),this.ts=null),this.video.removeAttribute(`src`),this.video.load()}pause(){this.video.pause()}resume(){this.video.play()}seek(e){this.video.currentTime=Math.max(0,e/1e3)}setRect(e){let t=this.video.style;t.left=`${e.x}px`,t.top=`${e.y}px`,t.width=`${e.w}px`,t.height=`${e.h}px`}setAspect(e){let t=this.video.style;t.objectFit=e===`fit`?`contain`:e===`fill`?`fill`:`cover`}audioTracks(){return this.hls?this.hls.audioTracks.map((e,t)=>({index:t,language:e.lang||``,label:e.name||zd(e.lang,t)})):[]}textTracks(){return this.hls?this.hls.subtitleTracks.map((e,t)=>({index:t,language:e.lang||``,label:e.name||zd(e.lang,t)})):[]}selectAudio(e){this.hls&&(this.hls.audioTrack=e)}selectText(e){this.hls&&(this.hls.subtitleTrack=e===null?-1:e)}videoHeight(){return this.video.videoHeight}duration(){let e=this.video.duration;return isFinite(e)?e*1e3:0}buffered(){let e=this.video.buffered;return e.length?e.end(e.length-1)*1e3:0}setSpeed(e){this.video.playbackRate=e}},X=I(`idle`),Hd=I(null),Ud=I(``),Wd=I(`unknown`),Gd=I(0),Kd=I(q.value.aspect),qd=I(null),Jd=I(0),Yd=I(null),Xd=I(null),Zd=I(``),Z,Qd=0,$d,ef,tf=!1,nf={tur:`tr`,eng:`en`,deu:`de`,ger:`de`,fra:`fr`,fre:`fr`,ara:`ar`,rus:`ru`},rf=e=>{let t=e.toLowerCase().slice(0,3);return nf[t]||t.slice(0,2)};function af(e,t){q.peek().rememberTracks&&(e===`audio`?t&&t.language&&Cc({preferredAudio:rf(t.language)}):Cc({preferredSubtitle:t&&t.language?rf(t.language):null}))}function of(){tf=!0;let{preferredAudio:e,preferredSubtitle:t}=q.peek(),n=(e,t)=>t?e.find(e=>e.language&&rf(e.language)===t):void 0,r=n(Z.audioTracks(),e);r&&Z.selectAudio(r.index);let i=n(Z.textTracks(),t);i&&Z.selectText(i.index)}var sf={},cf=[1500,3e3,6e3,12e3];function lf(e){let t=e.toUpperCase();return/AUTH|401|403|FORBIDDEN|UNAUTHORIZED/.test(t)?`auth`:/INVALID_URI|404|410|NOT_FOUND|MANIFESTLOADERROR/.test(t)?`not_found`:/NOT_SUPPORTED|UNSUPPORTED|FORMAT|MEDIA 4/.test(t)?`format`:/DECOD|MEDIA 3/.test(t)?`decoder`:/CONNECTION|NETWORK|TIMEOUT|MEDIA 2|FRAGLOAD|LEVELLOAD/.test(t)?`network`:`unknown`}function uf(e){let t={onBuffering:e=>{e&&X.value===`playing`?X.value=`loading`:!e&&X.value===`loading`&&(X.value=`playing`)},onPlaying:()=>{X.value===`loading`&&!tf&&of(),X.value=`playing`,Qd=0,Gd.value=0,sf.started&&sf.started()},onEnded:()=>sf.ended&&sf.ended(),onTime:e=>{Jd.value=e},onSubtitle:e=>{Zd.value=e},onError:e=>{console.warn(`oynatma hatası`,e);let t=Hd.value;if(!t||X.value===`error`)return;let n=lf(e);n!==`auth`&&n!==`not_found`&&n!==`format`&&Qd<cf.length?(X.value=`loading`,Gd.value=Qd+1,clearTimeout($d),$d=window.setTimeout(()=>Z.open(t.url,t.userAgent,ef),cf[Qd++])):(Gd.value=0,Wd.value=n,Ud.value=e,X.value=`error`,Z.stop(),sf.failed&&sf.failed())}};Z=Tt?new Bd(e,t):new Vd(e,t),qd.subscribe(e=>{e===null?Z.setRect({x:0,y:0,w:0,h:0}):e===`full`?Z.setRect({x:0,y:0,w:window.innerWidth,h:window.innerHeight}):Z.setRect(e)}),window.addEventListener(`resize`,()=>{qd.peek()===`full`&&Z.setRect({x:0,y:0,w:window.innerWidth,h:window.innerHeight})}),Kd.subscribe(e=>{Z.setAspect(e),q.peek().aspect!==e&&Cc({aspect:e})}),document.addEventListener(`visibilitychange`,()=>{let e=Hd.value;if(!e)return;if(document.hidden){Z.stop();return}let t=e.key.startsWith(`live:`)?void 0:Jd.peek()||ef;X.value=`loading`,Z.open(e.url,e.userAgent,t)})}function df(e,t={}){sf.ended=t.onEnded,sf.failed=t.onFailed,sf.started=t.onStarted,!(Hd.value&&Hd.value.key===e.key&&X.value!==`error`)&&(clearTimeout($d),Qd=0,Gd.value=0,tf=!1,ef=t.startMs,Hd.value=e,X.value=`loading`,Ud.value=``,Zd.value=``,Yd.value=null,Xd.value=null,Jd.value=t.startMs||0,Z.open(e.url,e.userAgent,t.startMs))}function ff(){let e=Hd.value;e&&(Hd.value=null,df(e,{onEnded:sf.ended,onFailed:sf.failed,onStarted:sf.started}))}function pf(){clearTimeout($d),Hd.value=null,X.value=`idle`,Z.stop()}function mf(){X.value===`paused`?(Z.resume(),X.value=`playing`):(X.value===`playing`||X.value===`loading`)&&(Z.pause(),X.value=`paused`)}var hf=e=>Z.seek(e),gf=()=>Z.audioTracks(),_f=()=>Z.textTracks(),vf=e=>Z.selectAudio(e);function yf(e){e===null&&(Zd.value=``),Z.selectText(e)}var bf=()=>Z.videoHeight(),xf=()=>Z.duration(),Sf=()=>Z.buffered(),Cf=e=>Z.setSpeed(e);function wf(e){let t=e.getBoundingClientRect();return{x:t.left,y:t.top,w:t.width,h:t.height}}var Tf=700,Ef=e=>{let t=Rd.countries[e];return t?t[en.value]:e};function Df({onOpenPlayer:e}){var t;let n=kc.value,r=q.value,[i,a]=N([]),[o,s]=N(null),[c,l]=N(0),u=F(0);u.current=c;let d=F(null),[f,p]=N(null),[m,h]=N([]),[g,_]=N(null),[v,y]=N(null),[b,x]=N(null),S=yl.value,[ee,C]=N(!1),[w,te]=N(!1),T=F(null),E=F(null),D=Xu.value,O=(()=>{let e=Ac.value;return!!e&&e.providerId===n&&`stage`in e&&e.stage!==`DONE`})(),ne=(t=(Oc.value||[]).find(e=>e.id===n))==null?void 0:t.lastSync;P(()=>{K.categories.where(`[providerId+kind]`).equals([n,`live`]).sortBy(`order`).then(a),td(n),Sl(n),Hl(n).then(e=>h(e.sort((e,t)=>e.name.localeCompare(t.name))))},[n,ne]);let re=Oe(()=>{let e=[{key:`fav`,label:R(`cat_favorites`),filter:{type:`fav`}},{key:`recent`,label:R(`cat_recent`),filter:{type:`recent`}},{key:`all`,label:R(`cat_all`),filter:{type:`all`}}],t=m.map(e=>({key:`ug:${e.id}`,label:e.name,filter:{type:`ugroup`,id:e.id},group:e})),n=i.filter(El);if(r.groupMode===`CATEGORY`){let i=e=>(bl.value.get(e.id)||{}).pinned||0,a=n.map((e,t)=>[e,t]).sort((e,t)=>i(t[0])-i(e[0])||e[1]-t[1]).map(e=>e[0]);return e.concat(t,a.map(e=>({key:`cat:${e.id}`,label:zs(e.name,r.filterWords),filter:{type:`cat`,id:e.id},platform:qs(e.name),locked:Cl(e),pinned:!!(bl.value.get(e.id)||{}).pinned,cat:e})))}let a=en.value===`tr`?`TR`:`UK`,o=Qs(n.map(e=>({id:e.id,name:e.name,locked:Cl(e)})),r.groupMode,a);return e.concat(t,o.map(e=>({key:e.key,label:e.platform?e.platform.name:e.country?Ef(e.country):R(`genre_${e.genre.toLowerCase()}`),filter:{type:`group`,key:e.key,ids:e.categoryIds},platform:e.platform})))},[i,r.groupMode,en.value,m,S]),k=Fl(D),ie=re.find(e=>Fl(e.filter)===k);P(()=>{Zu.value=ie?ie.label:``},[ie&&ie.label]),P(()=>{let e=!0;return s(null),Ll(n,D).then(t=>{if(!e)return;let n=t,r=Qu.peek(),i=r===null?-1:n.indexOf(r);s(n);let a=d.current===k;d.current=k;let o=i>=0?i:a?Math.max(0,Math.min(u.current,n.length-1)):0;l(o),i>=0&&(Qu.value=null),(i>=0||a)&&setTimeout(()=>{i<0&&document.activeElement!==document.body||Pt(E.current&&E.current.querySelector(`[data-idx="${o}"]`))},0)}),()=>{e=!1}},[n,k,ne,S]);let ae=F({pick:e=>{},menu:e=>{}});ae.current={pick:e=>ce(!!e.cat&&wl(e.cat),()=>{e.cat&&Tl(e.cat.id),Xu.value=e.filter}),menu:e=>A(e)};let oe=Oe(()=>o?new zl(o):null,[o]);P(()=>{Qu.peek()===null&&setTimeout(()=>L(T.current),0)},[]),P(()=>{let e=()=>{let e=document.activeElement;C(!!T.current&&T.current.contains(e)),te(!!E.current&&E.current.contains(e))};return document.addEventListener(`focusin`,e),()=>document.removeEventListener(`focusin`,e)},[]),P(()=>()=>{$u.peek()||pf(),qd.value=null},[]);let se=(e,t)=>r.numbering===`HIDDEN`?null:r.numbering===`CATEGORY`?t+1:e?e.number:null,ce=(e,t)=>e?_({then:t}):t(),le=async t=>{if(!o)return;let n=await K.channels.get(o[t]),r=n&&n.categoryId!==null&&i.find(e=>e.id===n.categoryId)||null;ce(!!n&&wl(r,n.id),()=>{n&&Tl(r?r.id:null,n.id),e(o,t)})},ue=async e=>{let t=oe&&(await oe.range(e,e+1))[0];if(!t||!o)return;let r=ed.value.has(t.id),i=async()=>s(await Ll(n,D)),a=[{label:R(r?`menu_remove_favorite`:`menu_add_favorite`),onSelect:async()=>{await Bl(n,`live`,t.id),await td(n),D.type===`fav`&&i()}}];if(D.type===`fav`||D.type===`ugroup`){let t=async t=>{if(!(t<0||t>=o.length)){if(D.type===`ugroup`)await ql(D.id,o,e,t);else{let[n,r]=await K.favorites.bulkGet([o[e],o[t]]);if(!n||!r)return;await K.favorites.bulkPut([V(V({},n),{},{order:r.order}),V(V({},r),{},{order:n.order})])}await i(),l(t)}};a.push({label:R(`menu_move_up`),onSelect:()=>t(e-1)},{label:R(`menu_move_down`),onSelect:()=>t(e+1)})}a.push({label:R(`menu_add_to_group`),onSelect:()=>p({title:R(`menu_add_to_group`),items:m.map(e=>({label:e.name,onSelect:()=>{Wl(e.id,t.id).then(()=>B(e.name))}})).concat([{label:R(`menu_new_group`),onSelect:()=>x({initial:R(`group_default_name`,m.length+1),save:async e=>{await Wl(await Ul(n,e.trim()||R(`group_default_name`,m.length+1)),t.id),h((await Hl(n)).sort((e,t)=>e.name.localeCompare(t.name)))}})}])})}),D.type===`ugroup`&&a.push({label:R(`menu_remove_from_group`),onSelect:async()=>{await Gl(D.id,t.id),i()}}),a.push({label:R(`menu_epg_mapping`),onSelect:()=>rd({name:`epgmap`,channelId:t.id})});let c=!!(xl.value.get(t.id)||{}).locked;a.push({label:R(c?`menu_unlock`:`menu_lock`),onSelect:()=>{if(!Ml())return y(R(`pin_needed_first`));c?_({then:()=>Al(t.id,n,{locked:!1})}):Al(t.id,n,{locked:!0})}}),a.push({label:R(`menu_hide`),onSelect:async()=>{await Al(t.id,n,{hidden:!0}),i()}}),p({title:t.name,items:a})},A=e=>{if(e.group)return p({title:e.label,items:[{label:R(`menu_delete_group`),onSelect:async()=>{await Kl(e.group.id),h(m.filter(t=>t.id!==e.group.id)),Fl(D)===e.key&&(Xu.value={type:`all`})}}]});let t=e.cat;if(!t)return;let r=bl.value.get(t.id)||{},i=Cl(t);p({title:t.name,items:[{label:R(r.pinned?`menu_unpin`:`menu_pin_top`),onSelect:()=>kl(t.id,n,{pinned:r.pinned?0:Date.now()})},{label:R(i?`menu_unlock`:`menu_lock`),onSelect:()=>{if(!Ml())return y(R(`pin_needed_first`));i?_({then:()=>kl(t.id,n,{locked:!1})}):kl(t.id,n,{locked:!0})}},{label:R(`menu_hide`),onSelect:async()=>{await kl(t.id,n,{hidden:!0}),Fl(D)===e.key&&(Xu.value={type:`all`})}}]})},de=hn(async e=>{if(!o)return;let t=-1;if(r.numbering===`CATEGORY`)t=e-1<o.length?e-1:-1;else{let r=await K.channels.where(`[providerId+number]`).equals([n,e]).first();t=r?o.indexOf(r.id):-1}if(t<0)return B(R(`channel_not_found`));l(t),setTimeout(()=>Pt(E.current&&E.current.querySelector(`[data-idx="${t}"]`)),0)});Bt(e=>{if(e.startsWith(`digit`))return de.push(e.slice(5)),!0});let fe=R(`group_${r.groupMode.toLowerCase()}`);return j(`div`,{class:`live-screen`,children:[j(`div`,{class:`live-cats glass${ee?` wide`:``}`,ref:T,"data-focus-group":`live-cats`,children:[j(`button`,{class:`group-mode`,"data-focus":!0,onClick:()=>p({title:R(`group_by`,fe),items:[`CATEGORY`,`COUNTRY`,`GENRE`,`PLATFORM`].map(e=>({label:R(`group_${e.toLowerCase()}`),checked:e===r.groupMode,onSelect:()=>{Cc({groupMode:e}),Xu.value={type:`all`}}}))}),children:[j(`span`,{children:[j(`span`,{class:`gm-title`,children:R(`live_categories`)}),j(`span`,{class:`gm-value`,children:R(`group_by`,fe)})]}),j(z,{name:`tune`})]}),j(Of,{entries:re,selectedKey:k,actions:ae})]}),j(`div`,{class:`live-channels glass`,children:[j(`div`,{class:`panel-title`,children:[j(`h2`,{children:ie?ie.label:``}),o&&o.length>0&&j(`span`,{class:`muted`,children:R(`live_channel_count`,o.length)})]}),o&&o.length===0?j(`p`,{class:`empty`,children:R(O?`live_syncing`:`live_empty_category`)}):j(ud,{listRef:E,group:`live-channels`,pager:oe,count:o?o.length:0,index:c,setIndex:l,numberOf:se,focused:w,onOpen:le,onMenu:ue})]}),j(jf,{pager:oe,index:c,active:w,locked:e=>wl(i.find(t=>t.id===e.categoryId)||null,e.id)}),j(gn,{digits:de.digits}),f&&j(mn,{title:f.title,items:f.items,onClose:()=>p(null)}),g&&j(_n,{title:R(`pin_enter`),check:Nl,onDone:()=>{let e=g.then;_(null),e()},onClose:()=>_(null)}),v&&j(yn,{text:v,onClose:()=>y(null)}),b&&j(vn,{title:R(`menu_new_group`),label:R(`group_name`),initial:b.initial,onSave:b.save,onClose:()=>x(null)})]})}var Of=class extends x{constructor(...e){super(...e),rr(this,`rev`,-1)}shouldComponentUpdate(e){return e.entries!==this.props.entries||e.selectedKey!==this.props.selectedKey||yl.peek()!==this.rev}render(){let{entries:e,selectedKey:t,actions:n}=this.props;return this.rev=yl.peek(),j(`div`,{class:`cat-list`,children:e.map(e=>j(kf,{e,selected:Fl(e.filter)===t,onClick:()=>n.current.pick(e),onLongPress:()=>n.current.menu(e)},e.key))})}};function kf({e,selected:t,onClick:n,onLongPress:r}){return j(`button`,{onlongpress:r,class:`cat-row focus-row${t?` selected`:``}`,"data-focus":!0,"data-focus-default":t||void 0,onClick:n,children:[e.platform&&j(Af,{p:e.platform}),j(`span`,{class:`cat-name`,children:e.label}),e.pinned&&j(z,{name:`pin`,class:`cat-icon`}),e.locked&&j(z,{name:`lock`,class:`cat-icon`})]})}function Af({p:e}){let t=Js(e);return j(`span`,{class:`platform-badge`,children:t?j(`img`,{src:t,alt:``,class:e.tintWhite===!1?``:`tint-white`}):j(`b`,{children:e.name})})}function jf({pager:e,index:t,active:n,locked:r}){let[i,a]=N(),[o,s]=N(null),c=F(null);P(()=>{let e=()=>{let e=qd.peek();e&&e!==`full`&&c.current&&(qd.value=wf(c.current))};return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]),P(()=>{if(s(null),!i)return;let e=!0,t=setTimeout(()=>al(i).then(t=>e&&s(t)),250);return()=>{e=!1,clearTimeout(t)}},[i&&i.id]);let l=q.value.previewAutoplay;return P(()=>{if(!e)return;let n=!0;return e.range(t,t+1).then(e=>n&&a(e[0])),()=>{n=!1}},[e,t]),P(()=>{if(!i)return;let e=Hd.peek();if(e&&e.key===`live:${i.id}`&&(qd.value=wf(c.current)),!n||!l||r(i))return;let t=setTimeout(()=>{let e=(Oc.value||[]).find(e=>e.id===i.providerId);qd.value=wf(c.current),df({url:i.url,userAgent:e?e.userAgent:null,key:`live:${i.id}`})},Tf);return()=>clearTimeout(t)},[i&&i.id,n]),j(`div`,{class:`live-preview glass`,children:[j(`span`,{class:`preview-label`,children:R(`live_preview`)}),j(`div`,{class:`preview-box${qd.value&&qd.value!==`full`?` hole`:``}`,ref:c,children:i&&r(i)?j(z,{name:`lock`,class:`preview-lock`}):!l&&i&&j(Ku,{src:i.logo,size:64})}),i&&j(`h3`,{class:`preview-name`,children:i.name}),o&&(o.now||o.next)?j(b,{children:[o.now&&j(Mf,{label:R(`now_label`),p:o.now,progress:!0}),o.next&&j(Mf,{label:R(`next_label`),p:o.next})]}):j(`p`,{class:`muted`,children:R(`no_program`)})]})}function Mf({label:e,p:t,progress:n}){return j(`div`,{class:`program-block`,children:[j(`span`,{class:`pb-label`,children:`${e} · ${ml(t)}`}),j(`span`,{class:`pb-title`,children:t.title}),n&&j(qu,{value:dl(t),class:`pb-progress`}),t.desc&&j(`span`,{class:`pb-desc`,children:t.desc})]})}var Nf=e=>e<10?`0${e}`:`${e}`;function Pf(e,t){if(!t){let t=new Date(e);return{Y:`${t.getFullYear()}`,m:Nf(t.getMonth()+1),d:Nf(t.getDate()),H:Nf(t.getHours()),M:Nf(t.getMinutes()),S:Nf(t.getSeconds())}}let n;try{n=new Intl.DateTimeFormat(`en-US`,{timeZone:t,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1}).format(new Date(e))}catch(t){return Pf(e)}let r=/(\d+)\/(\d+)\/(\d+),?\s+(\d+):(\d+):(\d+)/.exec(n);return{Y:r[3],m:r[1],d:r[2],H:Nf(r[4]%24),M:r[5],S:r[6]}}var Ff=(e,t,n)=>{let r=Pf(e,n);return t.replace(/[YmdHMS]/g,e=>r[e])};function If(e,t,n,r,i){let a=e=>Math.floor(e/1e3),o={utc:t,start:t,utcend:n,end:n,lutc:r,now:r,timestamp:r};return e.replace(/\{([YmdHMS])\}/g,(e,n)=>Pf(t,i)[n]).replace(/\$?\{(\w+)(?::([^}]+))?\}/g,(e,s,c)=>{if(s===`duration`||s===`offset`){let e=a(s===`duration`?n-t:r-t);return`${c&&/^\d+$/.test(c)?Math.floor(e/+c):e}`}let l=o[s];return l===void 0?e:c?Ff(l,c,i):`${a(l)}`})}var Lf=(e,t)=>e+(e.indexOf(`?`)>=0?`&`:`?`)+t.replace(/^[?&]/,``);function Rf(e,t,n,r,i={}){let a=Math.floor(t/1e3),o=Math.max(60,Math.floor((n-t)/1e3));switch(e.catchupType){case`XTREAM`:{let n=/^(https?:\/\/[^/]+)((?:\/.*?)?)\/([^/]+)\/([^/]+)\/([^/?]+?)(?:\.\w+)?(?:\?.*)?$/.exec(e.url);if(!n)return null;let r=n[1]+n[2].replace(/\/live$/,``),a=Pf(t,i.serverZone||i.deviceZone);return`${r}/timeshift/${n[3]}/${n[4]}/${Math.ceil(o/60)}/${a.Y}-${a.m}-${a.d}:${a.H}-${a.M}/${n[5]}.ts`}case`SHIFT`:return Lf(e.url,`utc=${a}&lutc=${Math.floor(r/1e3)}`);case`APPEND`:case`DEFAULT`:{if(!e.catchupSource)return null;let a=If(e.catchupSource,t,n,r,i.deviceZone);return e.catchupType===`APPEND`?e.url+a:/^https?:\/\//i.test(a)?a:Lf(e.url,a)}case`FLUSSONIC`:{let t=e.url.indexOf(`?`),n=t>=0?e.url.slice(0,t):e.url,r=t>=0?e.url.slice(t):``,i=/^(.*\/)([^/]+)\.m3u8$/.exec(n);if(i)return`${i[1]}${i[2]}-${a}-${o}.m3u8${r}`;let s=/^(.*\/)(?:mpegts|[^/]+\.ts)$/.exec(n);return s?`${s[1]}timeshift_abs-${a}.ts${r}`:`${n.replace(/\/$/,``)}/timeshift_abs-${a}.ts${r}`}default:return null}}var zf=(e,t,n)=>e.catchupType!==`NONE`&&t<n&&t>=n-Math.max(1,e.catchupDays)*864e5,Bf=/(?:(\d+):)?(\d{1,2}):(\d{1,2})[,.](\d{1,3})/;function Vf(e){let t=Bf.exec(e);if(!t)return NaN;let n=(t[4]+`00`).slice(0,3);return(((t[1]||0)*60+ +t[2])*60+ +t[3])*1e3+ +n}function Hf(e){return e.replace(/\{\\[^}]*\}/g,``).replace(/<(\/?)([ibu])(\s[^>]*)?>/gi,`$1$2`).replace(/<[^>]+>/g,``).replace(/\u0001/g,`<`).replace(/\u0002/g,`>`).trim()}function Uf(e){let t=[],n=e.replace(/^/,``).replace(/\r\n?/g,`
|
|
9
|
+
`).split(/\n\s*\n/);for(let e of n){let n=e.split(`
|
|
10
|
+
`),r=n.findIndex(e=>e.indexOf(`-->`)>=0);if(r<0)continue;let[i,a]=n[r].split(`-->`),o=Vf(i),s=Vf(a),c=Hf(n.slice(r+1).join(`
|
|
11
|
+
`));isNaN(o)||isNaN(s)||!c||t.push({start:o,end:s,text:c})}return t.sort((e,t)=>e.start-t.start)}function Wf(e,t){let n=0,r=e.length;for(;n<r;){let i=n+r>>1;e[i].start<=t?n=i+1:r=i}let i=[];for(let r=n-1;r>=0&&r>=n-5;r--)e[r].end>t&&i.unshift(e[r]);return i}function Gf(e){try{return new TextDecoder(`utf-8`,{fatal:!0}).decode(e)}catch(t){return new TextDecoder(`windows-1254`).decode(e)}}var Kf=I(null),qf=I(0);function Jf(){Kf.value=null,qf.value=0}var Yf=[`#fff`,`#ffeb3b`,`#00e5ff`];function Xf({text:e}){let t=e.split(/(<\/?[ibu]>)/i),n=[],r=!1,i=!1,a=!1;return t.forEach((e,t)=>{let o=/^<(\/?)([ibu])>$/i.exec(e);if(o){let e=!o[1],t=o[2].toLowerCase();t===`i`?r=e:t===`b`?i=e:a=e}else e&&n.push(j(`span`,{style:{fontStyle:r?`italic`:void 0,fontWeight:i?700:void 0,textDecoration:a?`underline`:void 0},children:e},t))}),j(b,{children:n})}function Zf(){let e=vt(()=>{let e=Kf.value;return e?Wf(e.cues,Jd.value-qf.value).map(e=>e.text).join(`
|
|
12
|
+
`):Zd.value}).value;if(!e)return null;let t=q.value;return j(`div`,{class:`subtitle-layer${t.subtitleBackground?` boxed`:``}`,style:{fontSize:`${(4*t.subtitleScale).toFixed(2)}rem`,color:Yf[t.subtitleColor]},children:e.split(`
|
|
13
|
+
`).map((e,t)=>j(`span`,{class:`subtitle-line`,children:j(Xf,{text:e})},t))})}var Qf=72e5,$f=18e5,ep=36e5,tp=864e5,np=e=>Math.floor(e/$f)*$f,rp=150;function ip(e){let{pager:t,count:n,rowRem:r,winStart:i}=e,a=i+Qf,o=F(null),[s,c]=N(Math.max(0,e.initialRow-3)),[l,u]=N({row:e.initialRow,pid:-1}),[d,f]=N(new Map),[p,m]=N(new Map),[h,g]=N(Date.now()),_=o.current?Math.max(1,Math.floor(o.current.clientHeight/fd()/r)):6,v=F(new Map);P(()=>{let e=setInterval(()=>g(Date.now()),3e4);return()=>clearInterval(e)},[]),P(()=>{l.row<s?c(l.row):l.row>s+_-1&&c(Math.min(Math.max(0,n-_),l.row-_+1))},[l.row,_,n]);let y=s,b=Math.min(n,s+_+1);P(()=>{let e=!0;return t.range(y,b).then(async t=>{let n=new Map;if(t.forEach((e,t)=>e&&n.set(y+t,e)),!e)return;f(n);let r=i-tp/2,a=i+Qf+tp,o=[...n.values()].filter(e=>{let t=v.current.get(e.id);return!t||t.from>i-ep||t.to<i+72e5+ep});for(await Promise.all(o.map(async e=>{v.current.set(e.id,{from:r,to:a,list:await rl(e,r,a)})}));v.current.size>rp;)v.current.delete(v.current.keys().next().value);if(!e)return;let s=new Map;v.current.forEach((e,t)=>s.set(t,e.list)),m(s)}),()=>{e=!1}},[t,y,b,Math.floor(i/tp*2)]);let x=e=>{let t=d.get(e);return t&&p.get(t.id)||null};P(()=>{if(l.pid!==-1)return;let e=x(l.row);if(e===null)return;let t=l.at===void 0?Date.now():l.at,n=e.find(e=>e.start<=t&&e.stop>t)||e.find(e=>e.stop>i&&e.start<a);u({row:l.row,pid:n?n.id:null})},[p,d]),P(()=>{if(!o.current)return;if(l.pid===-1){let e=o.current.querySelector(`[data-cell="${l.row}:ch"], [data-cell="${l.row}:wait"]`);e&&document.activeElement!==e&&e.focus();return}let e=o.current.querySelector(`[data-cell="${l.row}:${l.pid===null?`ch`:l.pid}"]`)||o.current.querySelector(`[data-cell="${l.row}:wait"]`);e&&document.activeElement!==e&&e.focus()},[l,d,p,i,s]),P(()=>{let e=()=>{let e=document.activeElement,t=e&&o.current&&o.current.contains(e)?e.getAttribute(`data-cell`):null;if(!t)return;let[n,r]=t.split(`:`);if(r===`wait`)return;let i={row:+n,pid:r===`ch`||r===`null`?null:+r};u(e=>e.row===i.row&&(e.pid===i.pid||e.pid===-1)?e:i)};return document.addEventListener(`focusin`,e),()=>document.removeEventListener(`focusin`,e)},[]);let S=(e,t)=>{let n=(x(e)||[]).filter(e=>e.stop>i&&e.start<a),r=n.find(e=>e.start<=t&&e.stop>t)||n[0];return r?r.id:null};Bt(t=>{if(!o.current||!o.current.contains(document.activeElement))return;let r=x(l.row)||[],s=l.pid===null?-1:r.findIndex(e=>e.id===l.pid),c=s>=0?r[s]:null,d=c?Math.max(c.start,i):l.at===void 0?i:l.at;switch(t){case`right`:{if(!c)return u({row:l.row,pid:S(l.row,i)}),!0;let t=r[s+1];return c.stop>a?e.setWinStart(i+ep):t?(t.start>=a&&e.setWinStart(np(t.start-$f)),u({row:l.row,pid:t.id})):e.setWinStart(i+ep),!0}case`left`:{if(!c)return!0;let t=r[s-1];return c.start<i?e.setWinStart(i-ep):t&&t.stop>i-tp?(t.stop<=i&&e.setWinStart(np(Math.max(t.start,t.stop-Qf+$f))),u({row:l.row,pid:t.id})):u({row:l.row,pid:null}),!0}case`up`:case`down`:case`chUp`:case`chDown`:{let e=t===`up`?-1:t===`down`?1:t===`chUp`?-8:8;if(t===`up`&&l.row===0)return;let r=Math.max(0,Math.min(n-1,l.row+e));return r!==l.row&&(l.pid===null?u({row:r,pid:null}):x(r)===null?u({row:r,pid:-1,at:d}):u({row:r,pid:S(r,d)})),!0}}});let ee=h>=i&&h<a?(h-i)/Qf*100:null,C=[];for(let t=y;t<b;t++){let n=d.get(t);if(!n){C.push(j(`div`,{class:`epg-row`,style:{top:`${(t-s)*r}rem`,height:`${r-.4}rem`},children:j(`button`,{class:`epg-channel`,"data-focus":!0,"data-cell":`${t}:wait`})},t));continue}let o=x(t),c=o?o.filter(e=>e.stop>i&&e.start<a):[],u=e.numberOf(n,t);C.push(j(`div`,{class:`epg-row`,style:{top:`${(t-s)*r}rem`,height:`${r-.4}rem`},children:[j(`button`,{class:`epg-channel`,"data-focus":!0,"data-cell":`${t}:ch`,"data-focus-default":l.row===t&&l.pid===null||void 0,onClick:()=>e.onChannel(n,t),children:[u!==null&&j(`span`,{class:`epg-num`,children:u}),j(Ku,{src:n.logo,size:26}),j(`span`,{class:`epg-chname`,children:n.name})]}),j(`div`,{class:`epg-programs`,children:[o&&!c.length&&j(`button`,{class:`epg-cell`,"data-focus":!0,"data-cell":`${t}:null`,style:{left:0,width:`100%`},onClick:()=>e.onChannel(n,t),children:j(`span`,{class:`epg-title`,children:R(`guide_no_data`)})}),c.map(r=>{let o=Math.max(r.start,i),s=Math.min(r.stop,a);return j(`button`,{class:`epg-cell${r.start<=h&&r.stop>h?` live`:``}`,"data-focus":!0,"data-cell":`${t}:${r.id}`,"data-focus-default":l.row===t&&l.pid===r.id||void 0,style:{left:`${(o-i)/Qf*100}%`,width:`${(s-o)/Qf*100}%`},onClick:()=>e.onProgram(r,n,t),children:[j(`span`,{class:`epg-title`,children:r.title}),j(`span`,{class:`epg-time`,children:pl(r.start)})]},r.id)})]})]},t))}return j(`div`,{class:`epg-grid${e.translucent?` translucent`:``}`,children:[j(`div`,{class:`epg-header`,children:[0,1,2,3].map(e=>j(`span`,{style:{left:`${e*25}%`},children:pl(i+e*$f)},e))}),j(`div`,{class:`epg-body`,ref:o,"data-focus-group":`epg`,"data-focus-noscroll":!0,onScroll:e=>{e.currentTarget.scrollTop=0},children:[C,ee!==null&&j(`div`,{class:`epg-now`,style:{left:`calc(var(--epg-ch) + (100% - var(--epg-ch)) * ${ee/100})`}})]})]})}var ap=5e3,op=700,sp=[`fit`,`fill`,`zoom`],cp=[0,15,30,45,60,90,120],lp=[.5,.75,1,1.25,1.5,2],up=[];for(let e=-10;e<=10;e+=.5)up.push(e);var dp=e=>R(`tz_sub_offset_value`,`${e>0?`+`:``}${(e/1e3).toFixed(1)}`),fp=e=>`${e}x`,pp=3e4,mp=e=>e<10?`0${e}`:`${e}`,hp=e=>`${mp(e.getHours())}:${mp(e.getMinutes())}`,gp=e=>e>=2e3?`4K`:e>=1e3?`FHD`:e>=700?`HD`:e>0?`SD`:``;function _p({onExit:e}){let t=$u.value,n=t.ids,r=Oe(()=>new zl(n),[n]),[i,a]=N(t.index),[o,s]=N(null),[c,l]=N(!0),[u,d]=N(null),[f,p]=N(0),[m,h]=N(t.archive?{program:t.archive,offset:0}:null),[g,_]=N(null),[v,y]=N(null),[b,x]=N(0),S=F(void 0),ee=F(!0),C=F(void 0),w=F(0),[,te]=N(0),T=F(null),E=F(0),D=F(void 0),O=q.value,ne=o?o.providerId:null,re=()=>{l(!0),clearTimeout(D.current),D.current=window.setTimeout(()=>l(!1),ap)},k=e=>{let t=n.length;t&&(o&&(T.current=o.id),clearTimeout(C.current),_(null),h(null),a((e%t+t)%t))};P(()=>{let e=!0;return(async()=>{let t=await K.channels.get(n[i]);if(!e||!t)return;if(q.peek().pinHash){await Sl(t.providerId);let n=t.categoryId===null?null:await K.categories.get(t.categoryId)||null;if(!e)return;if(wl(n,t.id)){s(t),pf(),y({channel:t,categoryId:t.categoryId});return}}s(t),re(),qd.value=`full`;let r=(Oc.value||[]).find(e=>e.id===t.providerId);if(clearTimeout(S.current),!ee.current&&!m&&(await new Promise(e=>{S.current=window.setTimeout(e,350)}),!e))return;if(ee.current=!1,m){let e=m.program,n=Date.now(),i=zf(t,e.start,n)?Rf(t,e.start+m.offset,e.stop,n,{serverZone:r?r.serverTimezone:null}):null;if(!i){B(R(`archive_unavailable`)),h(null);return}df({url:i,userAgent:r?r.userAgent:null,key:`arc:${t.id}:${e.id}:${m.offset}`},{onEnded:()=>ie(t,e)});return}let o=!1;df({url:t.url,userAgent:r?r.userAgent:null,key:`live:${t.id}`},{onStarted:()=>{o||(o=!0,Vl(t.providerId,`live`,t.id),Cc({lastChannelId:t.id}))},onFailed:()=>{let e=T.current;if(!q.peek().fallbackToPrevious||e===null||Date.now()-E.current<pp)return;let t=n.indexOf(e);t<0||(E.current=Date.now(),T.current=null,a(t),B(R(`player_fallback`)))}})})(),()=>{e=!1,clearTimeout(S.current)}},[i,m,b]);let ie=async(e,t)=>{let n=(await rl(e,t.stop-6e4,t.stop+216e5)).filter(e=>e.id!==t.id&&e.start>=t.stop-6e4).sort((e,t)=>e.start-t.start)[0];h(n&&n.stop<Date.now()?{program:n,offset:0}:null)},ae=()=>{clearTimeout(C.current),_(null),h(null)};P(()=>()=>clearTimeout(C.current),[]);let oe=()=>m?m.offset+Jd.peek():0,se=e=>{if(!m)return;let t=Math.min(m.program.stop,Date.now()-6e4)-m.program.start,n=Math.max(0,Math.min(t,(g===null?oe():g)+e));_(n),re(),clearTimeout(C.current),C.current=window.setTimeout(()=>{_(null);let e=o&&o.catchupType===`XTREAM`;h({program:m.program,offset:e?Math.floor(n/6e4)*6e4:n})},op)};P(()=>{ne!==null&&td(ne)},[ne]),P(()=>{let e=setInterval(()=>te(e=>e+1),5e3);return()=>{clearInterval(e),clearTimeout(D.current),o&&(Qu.value=o.id)}},[o]),P(()=>{if(!f)return;let e=setTimeout(()=>{X.peek()!==`paused`&&mf(),p(0),B(R(`sleep_triggered`))},f*6e4);return()=>clearTimeout(e)},[f]);let ce=()=>{o&&(Qu.value=o.id),$u.value=null,qd.value=null,e()},le=async()=>{if(!o)return;let e=await Bl(o.providerId,`live`,o.id);await td(o.providerId),B(R(e?`player_favorite_added`:`player_favorite_removed`))},ue=()=>{let e=sp[(sp.indexOf(Kd.value)+1)%sp.length];Kd.value=e,B(R(`aspect_${e}`))},A=e=>{e===`FAVORITE`?le():e===`AUDIO`?d({page:`audio`,direct:!0}):e===`SUBTITLES`?d({page:`subs`,direct:!0}):e===`ASPECT`?ue():e===`CHANNELS`?d(`list`):e===`INFO`?re():e===`GUIDE`&&d(`guide`)},de=hn(async e=>{let t=-1;if(O.numbering===`CATEGORY`)t=e-1<n.length?e-1:-1;else if(ne!==null){let r=await K.channels.where(`[providerId+number]`).equals([ne,e]).first();t=r?n.indexOf(r.id):-1}t<0?B(R(`channel_not_found`)):k(t)});P(()=>{let e=()=>{u||d({page:`main`,direct:!1})};return document.addEventListener(`longpress`,e),()=>document.removeEventListener(`longpress`,e)},[u]),Bt((e,t)=>{if(e.startsWith(`digit`))return de.push(e.slice(5)),!0;if(m&&!u&&e===`stop`)return ae(),!0;if(m&&!u&&X.peek()!==`error`){if(e===`left`||e===`right`)return w.current=t&&t.repeat?w.current+1:0,se((e===`left`?-1:1)*(w.current>4?12e4:3e4)),!0;if(e===`rew`||e===`ff`)return se((e===`rew`?-1:1)*12e4),!0;if(e===`ok`||e===`playPause`||e===`play`||e===`pause`)return mf(),re(),!0}if(e===`back`)return u?d(null):c?(clearTimeout(D.current),l(!1)):ce(),!0;if(!u&&(X.peek()!==`error`||e!==`ok`&&e!==`left`&&e!==`right`))switch(e){case`ok`:return d(`controls`),l(!0),clearTimeout(D.current),!0;case`up`:case`chUp`:return k(i+1),!0;case`down`:case`chDown`:return k(i-1),!0;case`left`:case`channelList`:return d(`list`),!0;case`right`:case`guide`:return d(`guide`),!0;case`last`:return T.current!==null&&n.indexOf(T.current)>=0&&k(n.indexOf(T.current)),!0;case`info`:return c?l(!1):re(),!0;case`menu`:return d({page:`main`,direct:!1}),!0;case`playPause`:case`play`:case`pause`:return mf(),re(),!0;case`red`:return A(O.colorKeys[0]),!0;case`green`:return A(O.colorKeys[1]),!0;case`yellow`:return A(O.colorKeys[2]),!0;case`blue`:return A(O.colorKeys[3]),!0}});let fe=!!o&&ed.value.has(o.id),M=X.value,pe=c&&!u||u===`controls`,me=!!m&&!u&&(c||g!==null||M===`paused`);return j(`div`,{class:`player`,children:[j(Zf,{}),M===`loading`&&j(`div`,{class:`player-center`,children:[j(`div`,{class:`spinner`}),Gd.value>0&&j(`span`,{class:`retry-label`,children:R(`player_retrying`,Gd.value)})]}),M===`paused`&&j(`div`,{class:`player-center`,children:j(z,{name:`pause`,class:`paused-icon`})}),M===`error`&&j(Tp,{onRetry:ff,onBack:ce}),o&&m&&me&&j(yp,{channel:o,program:m.program,target:g,offset:m.offset,paused:M===`paused`}),o&&!m&&pe&&j(bp,{channel:o,number:O.numbering===`HIDDEN`?null:O.numbering===`CATEGORY`?i+1:o.number,favorite:fe,hint:u!==`controls`,children:u===`controls`&&j(xp,{favorite:fe,subsOn:!1,onClose:()=>{d(null),re()},actions:{channels:()=>d(`list`),guide:()=>d(`guide`),audio:()=>d({page:`audio`,direct:!0}),subs:()=>d({page:`subs`,direct:!0}),picture:ue,favorite:le,more:()=>d({page:`main`,direct:!1}),back:ce}})}),u===`list`&&j(Sp,{pager:r,count:n.length,current:i,title:Zu.value,numberOf:(e,t)=>O.numbering===`HIDDEN`?null:O.numbering===`CATEGORY`?t+1:e?e.number:null,onPick:e=>{d(null),e!==i&&k(e)}}),u===`guide`&&j(Cp,{pager:r,count:n.length,current:i,numberOf:(e,t)=>O.numbering===`HIDDEN`?null:O.numbering===`CATEGORY`?t+1:e.number,onPlay:e=>{d(null),e===i?ae():k(e)},onArchive:(e,t)=>{d(null),t!==i&&k(t),h({program:e,offset:0})}}),u&&typeof u==`object`&&j(wp,{page:u.page,direct:u.direct,favorite:fe,sleepMin:f,setPage:e=>d({page:e,direct:!1}),close:()=>d(null),onFavorite:le,onSleep:e=>{p(e),e&&B(R(`sleep_set`,e))},onGuide:()=>d(`guide`),onGoLive:m?()=>{d(null),ae()}:void 0}),j(gn,{digits:de.digits}),v&&j(_n,{title:R(`pin_enter`),check:Nl,onDone:()=>{Tl(v.categoryId,v.channel.id),y(null),x(e=>e+1)},onClose:()=>{y(null);let e=T.current;e!==null&&n.indexOf(e)>=0?k(n.indexOf(e)):ce()}})]})}function vp({text:e,live:t,archive:n}){return j(`span`,{class:`badge-sm${t?` live`:``}${n?` archive`:``}`,children:e})}function yp(e){let{program:t}=e,n=e.target===null?e.offset+Jd.value:e.target,r=Math.max(1,t.stop-t.start);return j(`div`,{class:`info-band archive-band`,children:j(`div`,{class:`band-row`,children:[j(`div`,{class:`band-left`,children:j(Ku,{src:e.channel.logo,size:64})}),j(`div`,{class:`band-mid`,children:[j(`div`,{class:`band-title`,children:[j(`span`,{class:`band-name`,children:e.channel.name}),j(vp,{text:R(`player_archive`),archive:!0})]}),j(`p`,{class:`band-program`,children:t.title}),j(`div`,{class:`vod-bar-row`,children:[j(z,{name:e.paused?`play`:`pause`,class:`vod-state`}),j(`span`,{class:`vod-time`,children:pl(t.start+n)}),j(`div`,{class:`vod-bar`,children:j(`span`,{class:`vod-played`,style:{width:`${Math.min(100,n/r*100)}%`}})}),j(`span`,{class:`vod-time`,children:pl(t.stop)})]}),j(`p`,{class:`band-hint`,children:R(`tz_archive_hint`)})]}),j(`span`,{class:`band-clock`,children:hp(new Date)})]})})}function bp(e){let t=e.channel,[n,r]=N(null),i=hl.value;P(()=>{let e=!0;return al(t).then(t=>e&&r(t)),()=>{e=!1}},[t.id,i]);let a=n&&n.now,o=n&&n.next,s=gf().length,c=_f().length,l=gp(bf());return j(`div`,{class:`info-band`,children:[j(`div`,{class:`band-row`,children:[j(`div`,{class:`band-left`,children:[e.number!==null&&j(`span`,{class:`band-number`,children:e.number}),j(Ku,{src:t.logo,size:64})]}),j(`div`,{class:`band-mid`,children:[j(`div`,{class:`band-title`,children:[j(`span`,{class:`band-name`,children:t.name}),e.favorite&&j(z,{name:`star`,class:`fav-star big`}),j(vp,{text:R(`player_live`),live:!0}),l&&j(vp,{text:l}),s>1&&j(vp,{text:`♪ ${s}`}),c>0&&j(vp,{text:`CC`})]}),a?j(b,{children:[j(`p`,{class:`band-program`,children:[j(`span`,{class:`band-time`,children:ml(a)}),a.title]}),j(`div`,{class:`band-progress`,children:[j(qu,{value:dl(a)}),j(`span`,{children:R(`minutes_left`,Math.max(0,Math.round((a.stop-Date.now())/6e4)))})]})]}):j(`p`,{class:`band-program`,children:R(`no_program`)}),o&&j(`p`,{class:`band-next`,children:`${R(`next_label`)}: ${pl(o.start)} ${o.title}`}),e.hint&&j(`p`,{class:`band-hint`,children:R(`player_hint_live`)})]}),j(`span`,{class:`band-clock`,children:hp(new Date)})]}),e.children]})}function xp(e){let t=F(null);P(()=>{L(t.current)},[]),Bt(t=>{if(t===`back`)return e.onClose(),!0});let n=e.actions;return j(`div`,{class:`control-bar`,ref:t,"data-focus-scope":!0,children:[[`list`,R(`pc_channels`),n.channels],[`guide`,R(`player_guide`),n.guide],[`audio`,R(`player_audio`),n.audio],[`subtitles`,R(`player_subtitles`),n.subs,e.subsOn],[`aspect`,R(`pc_picture`),n.picture],[e.favorite?`star`:`starOutline`,R(`pc_favorite`),n.favorite,e.favorite],[`more`,R(`pc_more`),n.more],[`back`,R(`back`),n.back]].map(([e,t,n,r],i)=>j(`div`,{class:`cb-item`,children:[j(`button`,{class:`cb-btn${r?` active`:``}`,"data-focus":!0,"data-focus-default":i===0||void 0,onClick:n,children:j(z,{name:e})}),j(`span`,{class:`cb-label`,children:t})]},t))})}function Sp(e){let[t,n]=N(e.current),r=F(null);return P(()=>{setTimeout(()=>{let t=r.current&&r.current.querySelector(`[data-idx="${e.current}"]`);t&&t.focus()},0)},[]),j(`div`,{class:`list-overlay`,"data-focus-scope":!0,children:[j(`h2`,{children:e.title}),j(ud,{listRef:r,group:`player-list`,compact:!0,current:e.current,pager:e.pager,count:e.count,index:t,setIndex:n,numberOf:e.numberOf,focused:!0,onOpen:e.onPick,onMenu:()=>{}})]})}function Cp(e){let[t,n]=N(np(Date.now()));return j(`div`,{class:`guide-overlay`,"data-focus-scope":!0,children:j(ip,{pager:e.pager,count:e.count,initialRow:e.current,rowRem:5.2,translucent:!0,winStart:t,setWinStart:n,numberOf:e.numberOf,onChannel:(t,n)=>e.onPlay(n),onProgram:async(t,n,r)=>{let i=Date.now();t.start>i?B(R(await Hu(t,n)?`guide_reminder_set`:`guide_reminder_removed`)):t.stop<=i&&zf(n,t.start,i)?e.onArchive(t,r):e.onPlay(r)}})})}function wp(e){let t=F(null),n=Yd.value,r=Xd.value,i=e=>{Yd.value=e},a=e=>{Xd.value=e};P(()=>{L(t.current)},[e.page]),Bt(t=>{if(t===`back`)return e.page!==`main`&&!e.direct?e.setPage(`main`):e.close(),!0});let o=()=>e.direct?e.close():e.setPage(`main`),s=gf(),c=_f(),l=(e,t,n)=>{let r=e.find(e=>e.index===t);return r?r.label:n},u=R(`player_options`),d=[];if(e.page===`main`){d=[{label:R(`player_audio`),value:s.length?l(s,n,R(`player_auto`)):R(`player_no_tracks`),onSelect:()=>e.setPage(`audio`)},{label:R(`player_subtitles`),value:Kf.value?Kf.value.label:l(c,r,R(`player_off`)),onSelect:()=>e.setPage(`subs`)},{label:R(`player_aspect`),value:R(`aspect_${Kd.value}`),onSelect:()=>e.setPage(`aspect`)}];let t=e.vod;if(t&&d.push({label:R(`player_speed`),value:fp(t.speed),onSelect:()=>e.setPage(`speed`)}),d.push({label:R(`player_sleep`),value:e.sleepMin?R(`sleep_set`,e.sleepMin):R(`sleep_off`),onSelect:()=>e.setPage(`sleep`)}),t&&t.prev&&d.push({label:R(`vod_prev_ep`),value:t.prev.title,onSelect:()=>{e.close(),t.prev.go()}}),t&&t.next&&d.push({label:R(`vod_next_ep`),value:t.next.title,onSelect:()=>{e.close(),t.next.go()}}),e.onGuide){let t=e.onGuide;d.push({label:R(`player_guide`),onSelect:t}),d.push({label:R(e.favorite?`menu_remove_favorite`:`menu_add_favorite`),onSelect:()=>{e.onFavorite(),e.close()}})}e.onGoLive&&d.unshift({label:R(`player_go_live`),onSelect:e.onGoLive}),d.push({label:R(`player_info`),onSelect:()=>e.setPage(`info`)})}else if(e.page===`audio`)u=R(`player_audio`),d=[{label:R(`player_auto`),checked:n===null,onSelect:()=>{i(null),o()}}].concat(s.map((e,t)=>({label:e.label||R(`track_n`,t+1),checked:n===e.index,onSelect:()=>{vf(e.index),i(e.index),af(`audio`,e),o()}})));else if(e.page===`subs`){u=R(`player_subtitles`);let t=Kf.value;d=[{label:R(`player_off`),checked:r===null&&!t,onSelect:()=>{yf(null),a(null),Jf(),af(`text`,null),o()}}],t&&d.push({label:t.label,checked:!0,onSelect:o}),d=d.concat(c.map((e,n)=>({label:e.label||R(`track_n`,n+1),checked:!t&&r===e.index,onSelect:()=>{Jf(),yf(e.index),a(e.index),af(`text`,e),o()}})));let n=e.vod;n&&(d.push({label:R(`sub_find`),onSelect:()=>{e.close(),n.findSubs()}}),d.push({label:R(`sub_load`),onSelect:()=>{e.close(),n.loadSubs()}}),t&&d.push({label:R(`sub_offset`),value:dp(qf.value),onSelect:()=>e.setPage(`offset`)}))}else if(e.page===`offset`)u=R(`sub_offset`),d=up.map(e=>({label:dp(e*1e3),checked:qf.value===e*1e3,onSelect:()=>{qf.value=e*1e3,o()}}));else if(e.page===`aspect`)u=R(`player_aspect`),d=sp.map(e=>({label:R(`aspect_${e}`),checked:Kd.value===e,onSelect:()=>{Kd.value=e,o()}}));else if(e.page===`speed`&&e.vod){let t=e.vod;u=R(`player_speed`),d=lp.map(e=>({label:fp(e),checked:t.speed===e,onSelect:()=>{t.setSpeed(e),o()}}))}else if(e.page===`sleep`)u=R(`player_sleep`),d=cp.map(t=>({label:t?R(`sleep_minutes`,t):R(`sleep_off`),checked:e.sleepMin===t,onSelect:()=>{e.onSleep(t),o()}}));else{u=R(`player_info`);let t=bf();d=[{label:R(`info_video`,t?`${t}p`:R(`info_none`)),onSelect:()=>{}},{label:R(`info_audio`,s.length?s.map(e=>e.label).join(`, `):R(`info_none`)),onSelect:()=>{}},{label:R(`back`),onSelect:()=>e.setPage(`main`)}]}let f=d.some(e=>e.checked);return j(`div`,{class:`options-panel`,ref:t,"data-focus-scope":!0,children:[j(`h2`,{children:u}),d.map((t,n)=>j(`button`,{class:`opt-row focus-row${t.checked?` selected`:``}`,"data-focus":!0,"data-focus-default":(f?t.checked:n===0)||void 0,onClick:t.onSelect,children:[j(`span`,{class:`opt-text`,children:[j(`span`,{class:`opt-label`,children:t.label}),t.value&&j(`span`,{class:`opt-value`,children:t.value})]}),t.checked?j(z,{name:`check`}):e.page===`main`&&t.value!==void 0?j(z,{name:`chevron`}):null]},`${e.page}-${n}`))]})}function Tp({onRetry:e,onBack:t}){let n=F(null);return P(()=>{L(n.current)},[]),j(`div`,{class:`player-center`,children:j(`div`,{class:`error-card`,ref:n,"data-focus-scope":!0,children:[j(z,{name:`error`,class:`error-icon`}),j(`p`,{children:R(`player_error_${Wd.value}`)}),j(`div`,{class:`row`,children:[j(`button`,{class:`btn primary`,"data-focus":!0,"data-focus-default":!0,onClick:e,children:R(`retry`)}),j(`button`,{class:`btn outline`,"data-focus":!0,onClick:t,children:R(`back`)})]})]})})}function Ep(){let e=qd.value;if(e===`full`)return null;if(!e)return j(`div`,{class:`backdrop`,style:{left:0,top:0,right:0,bottom:0}});let t=window.innerWidth,n=window.innerHeight,r=(e,t,n,r)=>j(`div`,{class:`backdrop`,style:{left:`${e}px`,top:`${t}px`,width:`${n}px`,height:`${r}px`,backgroundPosition:`${-e}px ${-t}px`}});return j(b,{children:[r(0,0,t,e.y),r(0,e.y+e.h,t,n-e.y-e.h),r(0,e.y,e.x,e.h),r(e.x+e.w,e.y,t-e.x-e.w,e.h)]})}var Dp=1.8,Op=1.2,kp={movie:{w:11.6,ratio:1.5},series:{w:20,ratio:.5625}},Ap=[[`added`,`sort_added`],[`name`,`sort_name`],[`rating`,`sort_rating`],[`year`,`sort_year`]];function jp(e){var t;let n=kc.value,r=((t=(Oc.value||[]).find(e=>e.id===n))==null?void 0:t.lastSync)||0,[i,a]=N(`added`),[o,s]=N(e.filter.genre||null),[c,l]=N(null),[u,d]=N([]),[f,p]=N(0),[m,h]=N(6),[g,_]=N(kp[e.kind].w),[v,y]=N(null),b=kp[e.kind],x=g*b.ratio+Dp,[S,ee]=N(null),C=F(null),w=F(null);P(()=>{gu(n,e.kind,r).then(d)},[n,e.kind]),P(()=>{let t=!0;return vu(n,e.kind,{categoryIds:e.filter.categoryIds,genre:o||void 0},i).then(e=>{t&&(l(e),p(0))}),()=>{t=!1}},[n,i,o,e.kind,JSON.stringify(e.filter)]),P(()=>{c&&c.length&&setTimeout(()=>L(C.current),0)},[c===null]),P(()=>{let e=C.current;if(!e)return;let t=fd(),n=e.clientWidth/t-2*Op,r=Math.max(1,Math.round(n/(b.w+Dp)));h(r),_(Math.floor((n/r-Dp)*100)/100);let i=e=>{let t=e.target,n=t.closest(`[data-idx]`);n&&p(Number(n.getAttribute(`data-idx`)));let r=t.getAttribute(`data-info-title`);y(r?{title:r,meta:t.getAttribute(`data-info-meta`)||``}:null)};return e.addEventListener(`focusin`,i),()=>e.removeEventListener(`focusin`,i)},[c===null,e.kind]),Bt(e=>{if(e===`back`)return id(),!0});let te=e.filter.platformKey?Ws.find(t=>t.key===e.filter.platformKey):qs(e.title),T=R(`genre_label`,o||R(`browse_all`));return j(`div`,{class:`browse`,ref:w,children:[j(Np,{kind:e.kind,title:e.title,filter:e.filter,platform:te||null,genreCount:e.filter.genre&&c?c.length:null,children:j(`div`,{class:`row bb-sorts`,children:[Ap.map(([e,t])=>j(`button`,{class:`chip${i===e?` selected`:``}`,"data-focus":!0,onClick:()=>a(e),children:R(t)},e)),u.length>0&&j(`button`,{class:`btn outline bb-genre`,"data-focus":!0,onClick:()=>ee({title:T,items:[null,...u].map(e=>({label:e||R(`browse_all`),checked:e===o,onSelect:()=>s(e)}))}),children:T})]})}),e.kind===`movie`&&j(`p`,{class:`shelf-info browse-info`,children:[v&&j(`b`,{children:v.title}),v&&v.meta&&j(`span`,{children:` ${v.meta}`})]}),j(`div`,{class:`browse-grid ${e.kind}`,ref:C,"data-focus-group":`browse`,style:{"--cw":`${g}rem`},children:c&&(()=>{let t=Math.ceil(c.length/m),n=Math.floor(f/m),r=Math.max(0,n-4),i=Math.min(t,n+7),a=[j(`span`,{class:`grid-spacer`,style:{height:`${r*x}rem`}},`top`)];for(let t=r*m;t<Math.min(c.length,i*m);t++){let n=cu(c[t]);a.push(j(`span`,{"data-idx":t,class:`grid-cell`,children:j(yd,{kind:e.kind,card:n,onClick:()=>Od(e.kind,n)})},n.key))}return a.push(j(`span`,{class:`grid-spacer`,style:{height:`${(t-i)*x}rem`}},`bottom`)),a})()}),S&&j(mn,{title:S.title,items:S.items,onClose:()=>ee(null)})]})}var Mp=e=>{let t=parseInt(e.slice(1),16);return`${t>>16}, ${t>>8&255}, ${t&255}`};function Np(e){let t=kc.value,{platform:n,filter:r}=e,[i,a]=N(null);P(()=>{let n=!0;return(async()=>{let i={movie:[],series:[]};if(r.platformKey)for(let e of[`movie`,`series`])i[e]=(await lu(t,e)).filter(e=>!e.adult&&(qs(e.name)||{key:``}).key===r.platformKey).map(e=>e.id);else r.categoryIds&&(i[e.kind]=r.categoryIds);let o=async n=>r.platformKey||r.categoryIds?i[n].length?su(n).where(`categoryId`).anyOf(i[n]).count():0:n===e.kind&&r.all?su(n).where(`providerId`).equals(t).count():0,[s,c]=await Promise.all([o(`movie`),o(`series`)]);n&&a({movie:s,series:c,ids:i})})(),()=>{n=!1}},[t,e.kind,JSON.stringify(r)]);let o=!!n&&!!r.platformKey&&!!i&&i.movie>0&&i.series>0,s=t=>i?t===e.kind&&e.genreCount!==null?e.genreCount:i[t]:0,c=i&&!o?[`movie`,`series`].filter(e=>s(e)>0).map(e=>R(e===`movie`?`browse_movie_count`:`browse_series_count`,s(e))).join(` · `):``,l=n?Mp(n.color):`var(--accent-rgb)`,u=t=>{t!==e.kind&&i&&ad({name:`browse`,kind:t,title:e.title,filter:{categoryIds:i.ids[t],platformKey:r.platformKey}})};return j(`div`,{class:`browse-bar`,style:{background:`linear-gradient(90deg, rgba(${l}, 0.55), rgba(${l}, 0.12) 45%, rgba(255, 255, 255, 0.04))`},children:[j(`div`,{class:`bb-id`,children:[n?j(`span`,{class:`browse-logo`,children:j(xd,{p:n})}):j(`h1`,{class:`bb-title`,children:e.title}),c&&j(`span`,{class:`bb-count`,children:c})]}),o&&j(`div`,{class:`bb-tabs`,"data-focus-group":`browse-tabs`,children:[`movie`,`series`].map(t=>j(`button`,{class:`bb-tab${t===e.kind?` selected`:``}`,"data-focus":!0,"data-focus-default":t===e.kind||void 0,onClick:()=>u(t),children:[R(t===`movie`?`nav_movies`:`nav_series`),j(`span`,{class:`bb-tab-count`,children:` ${i[t]}`})]},t))}),j(`span`,{class:`spacer`}),e.children]})}var Pp=e=>{let t=Math.floor(e/1e3),n=Math.floor(t/3600),r=Math.floor(t%3600/60);return n?`${n}:${mu(r)}:${mu(t%60)}`:`${mu(r)}:${mu(t%60)}`},Fp=e=>!!e&&!e.watched&&e.position>1e4;function Ip({src:e}){return j(`div`,{class:`detail-backdrop`,children:[e&&j(`img`,{src:e,alt:``}),j(`span`,{class:`db-h`}),j(`span`,{class:`db-v`})]})}function Lp({chips:e}){return j(`div`,{class:`meta-chips`,children:e.filter(Boolean).map(e=>j(`span`,{class:`meta-chip${e.startsWith(`★`)?` gold`:``}`,children:e},e))})}function Rp(e,t){let[n,r]=N([]);return P(()=>{e&&yu(e,t).then(r)},[e&&e.id]),n}function zp(e,t,n){return{title:R(`vod_versions`,e.length),items:e.map(e=>({label:Ps(e.name)||R(`vod_version_standard`),checked:e.id===t.id,onSelect:()=>{e.id!==t.id&&ad(n===`movie`?{name:`movie`,id:e.id}:{name:`series`,id:e.id})}}))}}function Bp(){Bt(e=>{if(e===`back`)return id(),!0})}function Vp({id:e}){let[t,n]=N(null),[r,i]=N(),[a,o]=N(!1),[s,c]=N([]),[l,u]=N(null),d=F(null),f=Rp(t,`movie`);Bp();let p=async()=>{i(await iu(e)),o(!!await K.favorites.get(e))};if(P(()=>{let t=!0;K.movies.get(e).then(async r=>{if(!r||!t)return;n(r);let i=await Ql(r);if(!t||(n(i),r.categoryId===null))return;let a=(await du(r.categoryId,21)).filter(t=>t.id!==e).slice(0,20);t&&c(a)}),p();let r=()=>p();return window.addEventListener(`utopya:progress`,r),()=>{t=!1,window.removeEventListener(`utopya:progress`,r)}},[e]),P(()=>{t&&setTimeout(()=>L(d.current),0)},[!!t]),!t)return null;let m=Fp(r),h=!!r&&r.watched,g=e=>rd({name:`vod`,kind:`movie`,id:t.id,startMs:e}),_=[[m?R(`vod_resume`,Pp(r.position)):R(`vod_play`),()=>g(m?r.position:0)]];return m&&_.push([R(`vod_restart`),()=>g(0)]),f.length>1&&_.push([R(`vod_versions`,f.length),()=>u(zp(f,t,`movie`))]),_.push([R(a?`vod_remove_favorite`:`vod_add_favorite`),async()=>{await Bl(t.providerId,`movie`,t.id),p()}]),_.push([R(h?`vod_mark_unwatched`:`vod_mark_watched`),async()=>{await ru(`movie`,t.id,t.providerId,null,!h),p()}]),j(`div`,{class:`detail`,children:[j(Ip,{src:t.backdrop||t.poster}),j(`div`,{class:`detail-scroll`,children:[j(`button`,{class:`btn outline back-btn`,"data-focus":!0,onClick:id,children:[j(z,{name:`back`}),R(`back`)]}),j(`div`,{class:`detail-row`,children:[j(`div`,{class:`detail-poster`,children:t.poster&&j(`img`,{src:t.poster,alt:``})}),j(`div`,{class:`detail-info`,children:[j(`h1`,{children:t.name}),j(Lp,{chips:[t.year,t.durationSec?R(`vod_minutes`,Math.ceil(t.durationSec/60)):null,pd(t.rating),t.genre]}),t.plot&&j(`p`,{class:`detail-plot`,children:t.plot}),t.director&&j(`p`,{class:`detail-credit`,children:R(`vod_director`,t.director)}),t.cast&&j(`p`,{class:`detail-credit`,children:R(`vod_cast`,t.cast)}),j(`div`,{class:`detail-actions`,ref:d,children:_.map(([e,t],n)=>j(`button`,{class:`btn ${n===0?`primary`:`outline`}`,"data-focus":!0,"data-focus-default":n===0||void 0,onClick:t,children:e},e))})]})]}),s.length>0&&j(Ed,{title:R(`shelf_similar`),info:!0,children:s.map(e=>{let t=cu(e);return j(_d,{card:t,onClick:()=>ad({name:`movie`,id:t.id})},t.key)})})]}),l&&j(mn,{title:l.title,items:l.items,onClose:()=>u(null)})]})}function Hp(e,t){if(!e.length)return null;let n=e.filter(e=>Fp(t.get(e.id))).sort((e,n)=>t.get(n.id).updated-t.get(e.id).updated)[0];if(n)return{ep:n,pos:t.get(n.id).position};let r=-1;return e.forEach((e,n)=>{let i=t.get(e.id);i&&i.watched&&(r=n)}),{ep:e[Math.min(r+1,e.length-1)],pos:0}}function Up({id:e,season:t}){let[n,r]=N(null),[i,a]=N(null),[o,s]=N(new Map),[c,l]=N(!1),[u,d]=N(t||null),[f,p]=N(null),m=F(null),h=Rp(n,`series`);Bp();let g=async(t=i)=>{t&&s(await au(t.map(e=>e.id))),l(!!await K.favorites.get(e))};if(P(()=>{let t=!0;K.series.get(e).then(async e=>{if(!e||!t)return;r(e);let n=await $l(e);t&&(r(n.series),a(n.episodes),n.episodes.length&&u===null&&d(Math.min(...n.episodes.map(e=>e.season))),g(n.episodes))});let n=()=>g();return window.addEventListener(`utopya:progress`,n),()=>{t=!1,window.removeEventListener(`utopya:progress`,n)}},[e]),P(()=>{n&&setTimeout(()=>L(m.current),0)},[!!n]),!n)return null;let _=i?Hp(i,o):null,v=i?[...new Set(i.map(e=>e.season))].sort((e,t)=>e-t):[],y=(e,t)=>rd({name:`vod`,kind:`episode`,id:e.id,seriesId:n.id,startMs:t}),b=e=>`S${mu(e.season)}E${mu(e.episode)}`,x=[];_&&x.push([_.pos?R(`vod_resume`,`${b(_.ep)} · ${Pp(_.pos)}`):`${R(`vod_play`)} ${b(_.ep)}`,()=>y(_.ep,_.pos)]),h.length>1&&x.push([R(`vod_versions`,h.length),()=>p(zp(h,n,`series`))]),x.push([R(c?`vod_remove_favorite`:`vod_add_favorite`),async()=>{await Bl(n.providerId,`series`,n.id),g()}]);let S=e=>{let t=o.get(e.id),r=!!t&&t.watched;p({title:e.title,items:[{label:R(r?`vod_mark_unwatched`:`vod_mark_watched`),onSelect:async()=>{await ru(`episode`,e.id,n.providerId,n.id,!r),g()}}]})};return j(`div`,{class:`detail`,children:[j(Ip,{src:n.backdrop||n.poster}),j(`div`,{class:`detail-scroll series`,children:[j(`button`,{class:`btn outline back-btn`,"data-focus":!0,onClick:id,children:[j(z,{name:`back`}),R(`back`)]}),j(`div`,{class:`detail-row`,children:[j(`div`,{class:`detail-poster`,children:n.poster&&j(`img`,{src:n.poster,alt:``})}),j(`div`,{class:`detail-info`,children:[j(`h1`,{children:n.name}),j(Lp,{chips:[n.year,pd(n.rating),n.genre]}),n.plot&&j(`p`,{class:`detail-plot`,children:n.plot}),n.cast&&j(`p`,{class:`detail-credit`,children:R(`vod_cast`,n.cast)}),j(`div`,{class:`detail-actions`,ref:m,children:x.map(([e,t],n)=>j(`button`,{class:`btn ${n===0?`primary`:`outline`}`,"data-focus":!0,"data-focus-default":n===0||void 0,onClick:t,children:e},e))})]})]}),v.length>1?j(`div`,{class:`season-chips`,children:v.map(e=>j(`button`,{class:`chip${e===u?` selected`:``}`,"data-focus":!0,onClick:()=>d(e),children:R(`vod_season`,e)},e))}):j(`div`,{class:`season-gap`}),i===null&&j(`p`,{class:`muted`,children:R(`vod_episodes_loading`)}),i&&!i.length&&j(`p`,{class:`muted`,children:R(`vod_no_episodes`)}),j(`div`,{class:`episode-list`,"data-focus-group":`episodes`,children:i&&i.filter(e=>e.season===u).map(e=>j(Wp,{e,poster:n.poster,p:o.get(e.id),onClick:()=>{let t=o.get(e.id);y(e,t&&!t.watched?t.position:0)},onLongPress:()=>S(e)},e.id))})]}),f&&j(mn,{title:f.title,items:f.items,onClose:()=>p(null)})]})}function Wp(e){let{e:t,p:n}=e,r=n&&!n.watched&&n.duration?n.position/n.duration:0;return j(`button`,{onlongpress:e.onLongPress,class:`episode-row focus-row`,"data-focus":!0,onClick:e.onClick,children:[j(`span`,{class:`ep-thumb`,children:[(t.poster||e.poster)&&j(sn,{src:t.poster||e.poster}),r>0&&r<.95&&j(`span`,{class:`poster-progress`,children:j(`span`,{style:{width:`${Math.round(r*100)}%`}})})]}),j(`span`,{class:`ep-text`,children:[j(`span`,{class:`ep-title`,children:R(`vod_episode_title`,t.episode,t.title)}),t.plot&&j(`span`,{class:`ep-plot`,children:t.plot})]}),t.durationSec?j(`span`,{class:`ep-min`,children:R(`vod_minutes`,Math.round(t.durationSec/60))}):null,n&&n.watched&&j(z,{name:`check`,class:`ep-watched`})]})}var Gp=`keys`,Kp=null;function qp(){return new Promise((e,t)=>{let n=indexedDB.open(`utopya-keys`,1);n.onupgradeneeded=()=>n.result.createObjectStore(Gp),n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function Jp(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)})}function Yp(){return Kp||(Kp=(async()=>{let e=window.crypto&&window.crypto.subtle;if(!e)return null;try{let t=await qp(),n=await Jp(t.transaction(Gp).objectStore(Gp).get(`main`));if(n)return n;let r=await e.generateKey({name:`AES-GCM`,length:256},!1,[`encrypt`,`decrypt`]);return await Jp(t.transaction(Gp,`readwrite`).objectStore(Gp).put(r,`main`)),r}catch(e){return console.warn(`şifreleme anahtarı yok`,e),null}})()),Kp}var Xp=e=>btoa(String.fromCharCode.apply(null,Array.prototype.slice.call(new Uint8Array(e)))),Zp=e=>Uint8Array.from(atob(e),e=>e.charCodeAt(0));async function Qp(e){let t=await Yp();if(!t)return`p:${e}`;let n=crypto.getRandomValues(new Uint8Array(12)),r=await crypto.subtle.encrypt({name:`AES-GCM`,iv:n},t,new TextEncoder().encode(e));return`v1:${Xp(n)}:${Xp(r)}`}async function $p(e){if(e.startsWith(`p:`))return e.slice(2);let t=/^v1:([^:]+):(.+)$/.exec(e),n=await Yp();if(!t||!n)return null;try{let e=await crypto.subtle.decrypt({name:`AES-GCM`,iv:Zp(t[1])},n,Zp(t[2]));return new TextDecoder().decode(e)}catch(e){return null}}var em=`https://api.opensubtitles.com/api/v1`,tm=`UtopyaTV v1.0`,nm=`utopya.opensubtitles`;async function rm(){try{let e=localStorage.getItem(nm),t=e&&await $p(e);return t?JSON.parse(t):null}catch(e){return null}}var im=null;async function am(e){im=null;try{e&&(e.key||e.user||e.pass)?localStorage.setItem(nm,await Qp(JSON.stringify(e))):localStorage.removeItem(nm)}catch(e){}}var om=class extends Error{};async function sm(e,t,n,r){let i=n?`?`+Object.keys(n).sort().map(e=>`${e.toLowerCase()}=${encodeURIComponent(String(n[e]).toLowerCase())}`).join(`&`):``,a={"Api-Key":e.key,Accept:`application/json`,"X-User-Agent":tm};im&&(a.Authorization=`Bearer ${im}`),r&&(a[`Content-Type`]=`application/json`);let o=await fetch(sr(em+t+i),{method:r?`POST`:`GET`,headers:a,body:r?JSON.stringify(r):void 0,credentials:`omit`});if(o.status===406||o.status===429)throw new om;if(!o.ok)throw Error(`OpenSubtitles ${o.status}`);return o.json()}var cm=65536;function lm(e,t,n){let r=e>>>0,i=Math.floor(e/4294967296)>>>0;for(let e of[t,n]){let t=new DataView(e.buffer,e.byteOffset,e.byteLength);for(let n=0;n+8<=e.byteLength;n+=8){let e=r+t.getUint32(n,!0);r=e>>>0,i=i+t.getUint32(n+4,!0)+ +(e>4294967295)>>>0}}let a=e=>(`00000000`+e.toString(16)).slice(-8);return a(i)+a(r)}async function um(e,t,n){let r=await fetch(sr(e),{headers:{Range:`bytes=${t}-${n}`},credentials:`omit`});if(r.status!==206)return null;let i=parseInt((r.headers.get(`content-range`)||``).split(`/`)[1],10);return{bytes:new Uint8Array(await r.arrayBuffer()),total:i}}async function dm(e){try{let t=await um(e,0,65535);if(!t||!(t.total>=2*cm))return null;let n=await um(e,t.total-cm,t.total-1);return n?lm(t.total,t.bytes,n.bytes):null}catch(e){return null}}function fm(e,t,n){let r=e.filter(e=>e.attributes.files&&e.attributes.files.length),i=e=>{let n=e.attributes.feature_details||{};return t.season===void 0||n.season_number===t.season&&n.episode_number===t.episode},a=e=>{let n=e.attributes.feature_details||{};return t.season===void 0||n.season_number===void 0||n.season_number===t.season},o=Is(t.title).map(ks),s=t.year?parseInt(t.year,10):NaN,c=e=>{let n=e.attributes.feature_details||{},r=ks((t.season===void 0?n.title:n.parent_title)||``);return!r||o.indexOf(r)<0?!1:isNaN(s)||!n.year||Math.abs(n.year-s)<=1},l=e=>e.sort((e,t)=>(t.attributes.download_count||0)-(e.attributes.download_count||0))[0]||null;return l(r.filter(e=>String(e.attributes.moviehash_match)===`true`&&a(e)))||(n?l(r.filter(i)):null)||l(r.filter(e=>i(e)&&c(e)))}async function pm(e,t){let n=await rm();if(!n||!n.key)return{kind:`no_key`};try{let r=await dm(e.url),i={languages:t};r&&(i.moviehash=r),e.season===void 0?i.type=`movie`:(i.type=`episode`,i.season_number=e.season,i.episode_number=e.episode);let a=async e=>(await sm(n,`/subtitles`,V(V({},i),e))).data||[],o=null;e.tmdbId&&+e.tmdbId>0&&(o=fm(await a(e.season===void 0?{tmdb_id:e.tmdbId}:{parent_tmdb_id:e.tmdbId}),e,!0));for(let t of Is(e.title).reverse()){if(o)break;let n={query:t.toLowerCase()};e.season===void 0&&e.year&&(n.year=e.year.slice(0,4)),o=fm(await a(n),e,!1)}if(!o)return{kind:`not_found`};if(n.user&&!im)try{im=(await sm(n,`/login`,null,{username:n.user,password:n.pass})).token||null}catch(e){}let s=await sm(n,`/download`,null,{file_id:o.attributes.files[0].file_id});if(!s.link)return{kind:`not_found`};let c=await fetch(sr(s.link),{credentials:`omit`});if(!c.ok)return{kind:`failed`};let l=Gf(await c.arrayBuffer());return l.trim()?{kind:`found`,name:o.attributes.release||`OpenSubtitles`,text:l}:{kind:`failed`}}catch(e){return e instanceof om?{kind:`limit`}:(console.warn(`OpenSubtitles`,e),{kind:`failed`})}}var mm=4e3,hm=650,gm=[`fit`,`fill`,`zoom`],_m=e=>e<10?`0${e}`:`${e}`,vm=()=>{let e=new Date;return`${_m(e.getHours())}:${_m(e.getMinutes())}`},ym=e=>`S${mu(e.season)}E${mu(e.episode)}`;function bm(e){let[t,n]=N(null),[r,i]=N([]),[a,o]=N(null),[s,c]=N(!0),[l,u]=N(null),[d,f]=N(null),[p,m]=N(!1),[h,g]=N(1),[_,v]=N(0),[,y]=N(0),x=F(void 0),S=F(void 0),ee=F(0),C=F(!1),w=F(!1),[te,T]=N(!1),E=r.findIndex(t=>t.id===e.id),D=E>0?r[E-1]:null,O=E>=0&&E<r.length-1?r[E+1]:null,ne=F({props:e,info:t});ne.current={props:e,info:t};let re=(e=!1)=>{var t;let{props:n,info:r}=ne.current,i=xf();if(!r||i<=0)return;let a=C.current?i:Jd.peek();n.kind!==`stream`&&(nu(n.kind,n.id,r.providerId,(t=n.seriesId)==null?null:t,a,i),e&&window.dispatchEvent(new Event(`utopya:progress`)))},k=()=>{c(!0),clearTimeout(x.current),x.current=window.setTimeout(()=>c(!1),mm)};P(()=>{let t=!0;return C.current=!1,w.current=!1,clearTimeout(S.current),u(null),g(1),Jf(),m(!1),f(null),(async()=>{let r;if(e.kind===`stream`)r={title:e.title||``,sub:``,url:e.url,userAgent:null,providerId:-1,target:{title:e.title||``,year:null,url:e.url,tmdbId:null}};else if(e.kind===`movie`){let t=await K.movies.get(e.id);if(!t)return;r={title:t.name,sub:t.year||``,url:t.url,userAgent:null,providerId:t.providerId,target:{title:t.name,year:t.year,url:t.url,tmdbId:t.tmdbId||null}}}else{let[n,a]=await Promise.all([K.episodes.get(e.id),K.series.get(e.seriesId)]);if(!n||!a)return;r={title:a.name,sub:`${ym(n)} · ${n.title}`,url:n.url,userAgent:null,providerId:a.providerId,target:{title:a.name,year:a.year,season:n.season,episode:n.episode,url:n.url,tmdbId:a.tmdbId||null}},t&&i(eu(await K.episodes.where(`seriesId`).equals(a.id).toArray()))}let a=(Oc.value||[]).find(e=>e.id===r.providerId);if(r.userAgent=a?a.userAgent:null,!t)return;n(r);let o=e.startMs;if(o===void 0){let t=await iu(e.id);o=t&&!t.watched?t.position:0}qd.value=`full`,df({url:r.url,userAgent:r.userAgent,key:e.kind===`stream`?`stream:${r.url}`:`vod:${e.id}`},{startMs:o||void 0,onEnded:()=>{C.current=!0,re(!0),k()},onStarted:()=>se(r.target)}),k()})(),()=>{t=!1}},[e.id]),P(()=>{let e=setInterval(()=>{X.peek()===`playing`&&re()},1e4),t=setInterval(()=>y(e=>e+1),1e3);return()=>{clearInterval(e),clearInterval(t)}},[t]),P(()=>()=>{re(!0),pf(),Jf(),qd.value=null,clearTimeout(x.current)},[]);let ie=()=>q.peek().preferredSubtitle||`tr`,ae=(e,t)=>{let n=Uf(t);return n.length?(yf(null),qf.value=0,Kf.value={label:e,cues:n},!0):!1},oe=async(e,t)=>{t||B(R(`sub_searching`));let n=ne.current.props.id,r=await pm(e,ie());if(ne.current.props.id===n){if(r.kind===`found`)ae(r.name,r.text)?B(R(`sub_found`,r.name)):t||B(R(`sub_failed`));else if(t)return;else r.kind===`not_found`?B(R(`sub_not_found`)):r.kind===`no_key`?B(R(`sub_no_key`)):r.kind===`limit`?B(R(`sub_limit`)):B(R(`error_network`))}},se=e=>{if(w.current||!q.peek().autoSubtitles)return;w.current=!0;let t=ne.current.props.id;setTimeout(()=>{if(ne.current.props.id!==t||Kf.peek())return;let n=ie();_f().some(e=>e.language.toLowerCase().startsWith(n))||oe(e,!0)},4e3)},ce=async e=>{try{let t=await fetch(sr(cr(e)),{credentials:`omit`});if(t.ok&&ae(`SRT`,Gf(await t.arrayBuffer()))){B(R(`sub_loaded`));return}}catch(e){}B(R(`sub_failed`))},le=xf(),ue=le-Jd.peek();P(()=>{if(!O||p||d!==null||!q.peek().autoNextEpisode)return;let t=Hd.peek();t&&t.key===`vod:${e.id}`&&X.peek()!==`loading`&&(C.current||le>6e4&&ue>0&&ue<=15e3)&&f(10)}),P(()=>{if(d===null)return;if(d<=0){A(O);return}let e=setTimeout(()=>f(e=>e===null?null:e-1),1e3);return()=>clearTimeout(e)},[d]),P(()=>{if(!_)return;let e=setTimeout(()=>{X.peek()!==`paused`&&mf(),v(0),B(R(`sleep_triggered`))},_*6e4);return()=>clearTimeout(e)},[_]);let A=t=>{re(),iu(t.id).then(n=>ad({name:`vod`,kind:`episode`,id:t.id,seriesId:e.seriesId,startMs:n&&!n.watched?n.position:0}))},de=()=>{re(),id()},fe=e=>{let t=l===null?Jd.peek():l,n=Math.max(0,Math.min(le||1/0,t+e));u(n),k(),clearTimeout(S.current),S.current=window.setTimeout(()=>{hf(n),u(null)},hm)};if(P(()=>{let e=()=>{a||o({page:`main`,direct:!1})};return document.addEventListener(`longpress`,e),()=>document.removeEventListener(`longpress`,e)},[a]),Bt((e,t)=>{if(e===`back`)return a?o(null):d===null?s&&X.peek()===`playing`?(clearTimeout(x.current),c(!1)):de():(f(null),m(!0)),!0;if(a||d!==null)return;ee.current=t.repeat?ee.current+1:0;let n=ee.current>6?6e4:ee.current>2?3e4:1e4;switch(e){case`ok`:return mf(),k(),!0;case`left`:return fe(-n),!0;case`right`:return fe(n),!0;case`rew`:return fe(-3e4),!0;case`ff`:return fe(3e4),!0;case`playPause`:case`play`:case`pause`:return mf(),k(),!0;case`up`:case`info`:return o(`controls`),c(!0),clearTimeout(x.current),!0;case`down`:return r.length?o(`episodes`):k(),!0;case`menu`:return o({page:`main`,direct:!1}),!0;case`green`:return o({page:`audio`,direct:!0}),!0;case`yellow`:return o({page:`subs`,direct:!0}),!0;case`chUp`:return O&&A(O),!0;case`chDown`:return D&&A(D),!0}}),!t)return null;let M=X.value;return j(`div`,{class:`player vod-player`,children:[j(Zf,{}),M===`loading`&&j(`div`,{class:`player-center`,children:j(`div`,{class:`spinner`})}),(s||M===`paused`||l!==null||a===`controls`)&&j(b,{children:[j(`div`,{class:`vod-top`,children:[j(`div`,{children:[j(`h1`,{children:t.title}),t.sub&&j(`p`,{children:t.sub})]}),j(`span`,{class:`band-clock`,children:vm()})]}),j(`div`,{class:`vod-bottom`,children:[j(wm,{paused:M===`paused`,target:l,d:le}),a===`controls`?j(xm,{paused:M===`paused`,series:r.length>0,prev:!!D,next:!!O,close:()=>{o(null),k()},on:{play:()=>mf(),back10:()=>fe(-1e4),fwd10:()=>fe(1e4),prev:()=>D&&A(D),next:()=>O&&A(O),episodes:()=>o(`episodes`),audio:()=>o({page:`audio`,direct:!0}),subs:()=>o({page:`subs`,direct:!0}),speed:()=>o({page:`speed`,direct:!0}),picture:()=>{let e=gm[(gm.indexOf(Kd.value)+1)%3];Kd.value=e,B(R(`aspect_${e}`))},more:()=>o({page:`main`,direct:!1}),exit:de}}):j(`p`,{class:`band-hint`,children:R(`vod_hint`)})]})]}),a===`episodes`&&j(Sm,{eps:r,current:e.id,onPick:t=>{o(null),t.id!==e.id&&A(t)}}),a&&typeof a==`object`&&j(wp,{page:a.page,direct:a.direct,favorite:!1,sleepMin:_,setPage:e=>o({page:e,direct:!1}),close:()=>o(null),onFavorite:()=>{},onSleep:e=>{v(e),e&&B(R(`sleep_set`,e))},vod:{speed:h,setSpeed:e=>{Cf(e),g(e)},prev:D?{title:`${ym(D)} · ${D.title}`,go:()=>A(D)}:void 0,next:O?{title:`${ym(O)} · ${O.title}`,go:()=>A(O)}:void 0,findSubs:()=>oe(t.target,!1),loadSubs:()=>T(!0)}}),te&&j(vn,{title:R(`sub_url_title`),label:R(`sub_url_hint`),initial:``,placeholder:`https://…/altyazi.srt`,onSave:e=>{e.trim()&&ce(e)},onClose:()=>T(!1)}),d!==null&&O&&j(Cm,{seconds:d,title:`${ym(O)} · ${O.title}`,onPlay:()=>A(O),onCancel:()=>{f(null),m(!0)}})]})}function xm(e){let t=F(null);P(()=>{L(t.current)},[]),Bt(t=>t===`back`?(e.close(),!0):void 0);let n=e.on,r=[[e.paused?`play`:`pause`,R(e.paused?`pc_play`:`pc_pause`),n.play],[`back`,`-10 sn`,n.back10],[`chevron`,`+10 sn`,n.fwd10]];return e.series&&e.prev&&r.push([`back`,R(`pc_prev`),n.prev]),e.series&&e.next&&r.push([`chevron`,R(`pc_next`),n.next]),e.series&&r.push([`list`,R(`vod_episodes`),n.episodes]),r.push([`audio`,R(`player_audio`),n.audio],[`subtitles`,R(`player_subtitles`),n.subs],[`more`,R(`pc_speed`),n.speed],[`aspect`,R(`pc_picture`),n.picture],[`more`,R(`pc_more`),n.more],[`back`,R(`back`),n.exit]),j(`div`,{class:`control-bar`,ref:t,"data-focus-scope":!0,children:r.map(([e,t,n],r)=>j(`div`,{class:`cb-item`,children:[j(`button`,{class:`cb-btn`,"data-focus":!0,"data-focus-default":r===0||void 0,onClick:n,children:j(z,{name:e})}),j(`span`,{class:`cb-label`,children:t})]},t))})}function Sm({eps:e,current:t,onPick:n}){let r=F(null);return P(()=>{let e=r.current&&r.current.querySelector(`[data-current]`);e&&e.focus()},[]),j(`div`,{class:`episodes-panel`,ref:r,"data-focus-scope":!0,children:[j(`h2`,{children:R(`vod_episodes`)}),e.map(e=>j(`button`,{class:`focus-row opt-row${e.id===t?` selected`:``}`,"data-focus":!0,"data-current":e.id===t||void 0,onClick:()=>n(e),children:[j(`span`,{class:`ep-code`,children:ym(e)}),j(`span`,{class:`opt-label`,children:e.title})]},e.id))]})}function Cm(e){let t=F(null);return P(()=>{L(t.current)},[]),j(`div`,{class:`next-card`,ref:t,"data-focus-scope":!0,children:[j(`p`,{class:`next-when`,children:R(`vod_next_episode`,e.seconds)}),j(`p`,{class:`next-title`,children:e.title}),j(`div`,{class:`row`,children:[j(`button`,{class:`btn primary`,"data-focus":!0,"data-focus-default":!0,onClick:e.onPlay,children:R(`vod_play_now`)}),j(`button`,{class:`btn outline`,"data-focus":!0,onClick:e.onCancel,children:R(`cancel`)})]})]})}function wm({paused:e,target:t,d:n}){let r=t===null?Jd.value:t,i=e=>n>0?`${Math.min(100,e/n*100)}%`:`0%`;return j(`div`,{class:`vod-bar-row`,children:[j(z,{name:e?`play`:`pause`,class:`vod-state`}),j(`span`,{class:`vod-time`,children:Pp(r)}),j(`div`,{class:`vod-bar`,children:[j(`span`,{class:`vod-buffer`,style:{width:i(Sf())}}),j(`span`,{class:`vod-played`,style:{width:i(r)}})]}),j(`span`,{class:`vod-time`,children:[`-`,Pp(Math.max(0,n-r))]})]})}function Tm({channelId:e}){let[t,n]=N(null),[r,i]=N(null),[a,o]=N(null),[s,c]=N(``),l=F(null);if(Bt(e=>e===`back`?(id(),!0):void 0),P(()=>{K.channels.get(e).then(async e=>{if(!e)return;n(e);let t=await K.epgLinks.get(e.id);o(t?t.key:null),i((await K.epgChannels.where(`providerId`).equals(e.providerId).toArray()).sort((e,t)=>e.name.localeCompare(t.name)))})},[e]),P(()=>{r&&setTimeout(()=>L(l.current),0)},[!!r]),!t)return null;let u=s.trim().toLowerCase(),d=(r||[]).filter(e=>!u||e.name.toLowerCase().indexOf(u)>=0||e.xmlId.indexOf(s.trim())>=0).slice(0,300),f=(r||[]).find(e=>e.id===a),p=async e=>{e?await K.epgLinks.put({id:t.id,providerId:t.providerId,key:e,manual:!0}):await K.epgLinks.delete(t.id),Rc(t.providerId,void 0,`epg`),id()};return j(`div`,{class:`epg-mapping`,children:[j(`div`,{class:`em-left`,children:[j(`button`,{class:`btn outline`,"data-focus":!0,onClick:id,children:[j(z,{name:`back`}),R(`back`)]}),j(`h1`,{children:R(`epg_mapping_title`)}),j(`p`,{class:`em-channel`,children:t.name}),a&&j(`p`,{class:`muted`,children:R(`epg_mapping_current`,f?f.name:a.split(`|`)[1])}),j(ln,{label:R(`epg_mapping_filter`),value:s,onInput:c,class:`em-filter`})]}),j(`div`,{class:`em-list`,ref:l,"data-focus-group":`epgmap`,children:r&&!r.length?j(`p`,{children:R(`epg_mapping_none`)}):j(b,{children:[j(`button`,{class:`focus-row opt-row em-auto`,"data-focus":!0,"data-focus-default":!0,onClick:()=>p(null),children:R(`epg_mapping_auto`)}),d.map(e=>j(`button`,{class:`focus-row opt-row${e.id===a?` selected`:``}`,"data-focus":!0,onClick:()=>p(e.id),children:[j(`span`,{class:`opt-label`,children:e.name}),j(`span`,{class:`muted em-id`,children:e.xmlId})]},e.id))]})})]})}var Em=`utopya.settings`,Dm=`utopya-yedek-`;async function Om(){let[e,t,n,r,i,a,o]=await Promise.all([K.providers.toArray(),K.favorites.toArray(),K.groups.toArray(),K.groupItems.toArray(),K.catState.toArray(),K.chanState.toArray(),K.progress.toArray()]),s={version:1,app:`tizen`,createdAt:Date.now(),settings:localStorage.getItem(Em)||`{}`,providers:e,favorites:t,groups:n,groupItems:r,catState:i,chanState:a,progress:o};return JSON.stringify(s)}var km=e=>e<10?`0${e}`:`${e}`;function Am(e=new Date){return`${Dm}${e.getFullYear()}${km(e.getMonth()+1)}${km(e.getDate())}-${km(e.getHours())}${km(e.getMinutes())}.json`}async function jm(){let e=await Om(),t=Am();if(!Tt){let n=document.createElement(`a`);return n.href=URL.createObjectURL(new Blob([e],{type:`application/json`})),n.download=t,n.click(),setTimeout(()=>URL.revokeObjectURL(n.href),5e3),t}let n=(await new Promise((e,t)=>tizen.filesystem.resolve(`downloads`,e,t,`rw`))).createFile(t);return await new Promise((t,r)=>n.openStream(`w`,n=>{n.write(e),n.close(),t()},r,`UTF-8`)),`Downloads/${t}`}async function Mm(){if(!Tt)return[];let e=[],t=async t=>{try{let n=await new Promise((e,n)=>tizen.filesystem.resolve(t,e,n,`r`)),r=await new Promise(e=>n.listFiles(e,()=>e([])));for(let t of r)!t.isDirectory&&t.name.indexOf(Dm)===0&&/\.json$/i.test(t.name)&&e.push({name:t.name,uri:t.toURI()})}catch(e){}};await t(`downloads`);let n=await new Promise(e=>tizen.filesystem.listStorages(e,()=>e([])));for(let e of n)e.type===`EXTERNAL`&&e.state===`MOUNTED`&&await t(e.label);return e.sort((e,t)=>e.name<t.name?1:-1)}async function Nm(e){let t=await new Promise((t,n)=>tizen.filesystem.resolve(e,t,n,`r`));return new Promise((e,n)=>t.readAsText(e,n,`UTF-8`))}async function Pm(e){let t=JSON.parse(e);if(!t||t.version!==1||!Array.isArray(t.providers))throw Error(`yedek biçimi tanınmadı`);let n=[K.channels,K.movies,K.series,K.episodes,K.categories,K.programs,K.epgLinks,K.epgChannels,K.recents],r=[K.providers,K.favorites,K.groups,K.groupItems,K.catState,K.chanState,K.progress];await K.transaction(`rw`,[...n,...r],async()=>{for(let e of[...n,...r])await e.clear();await K.providers.bulkPut(t.providers),await K.favorites.bulkPut(t.favorites),await K.groups.bulkPut(t.groups),await K.groupItems.bulkPut(t.groupItems),await K.catState.bulkPut(t.catState),await K.chanState.bulkPut(t.chanState),await K.progress.bulkPut(t.progress)});try{localStorage.setItem(Em,t.settings)}catch(e){}Sc(),await Mc();for(let e of await K.providers.toArray())Rc(e.id)}var Fm=[[`sources`,`set_sources`,`dns`],[`player`,`set_player`,`play`],[`look`,`set_appearance`,`grid`],[`epg`,`set_epg`,`guide`],[`parental`,`set_parental`,`lock`],[`hidden`,`set_hidden`,`list`],[`about`,`set_about`,`more`]];function Q(e){return j(`button`,{onlongpress:e.onLongPress,class:`focus-row set-row`,"data-focus":!0,onClick:e.onClick,children:[j(`span`,{class:`opt-text`,children:[j(`span`,{class:`opt-label`,children:e.title}),e.subtitle&&j(`span`,{class:`set-sub`,children:e.subtitle})]}),e.value&&j(`span`,{class:`set-value`,children:e.value})]})}var Im=({text:e})=>j(`h3`,{class:`set-header`,children:e});function Lm(){let[e,t]=N(`sources`),[n,r]=N(null),i=F(null),a=q.value;P(()=>{setTimeout(()=>L(i.current),0)},[]);let o=(e,t,n,i)=>r({kind:`menu`,title:e,items:t.map(([e,t])=>({label:t,checked:e===n,onSelect:()=>i(e)}))}),s=e=>Cc(e),c=e=>R(e?`set_on`:`set_off`),l=(e,t)=>(e.find(e=>e[0]===t)||[null,``])[1];return j(`div`,{class:`settings`,children:[j(`div`,{class:`set-sections`,ref:i,"data-focus-group":`set-sections`,children:Fm.map(([n,r,i])=>j(`button`,{class:`focus-row set-section${e===n?` selected`:``}`,"data-focus":!0,"data-focus-default":e===n||void 0,onFocus:()=>t(n),onClick:()=>t(n),children:[j(z,{name:i}),j(`span`,{children:R(r)})]},n))}),j(`div`,{class:`set-panel glass`,"data-focus-group":`set-panel`,children:[j(`h2`,{children:R(Fm.find(t=>t[0]===e)[1])}),e===`sources`&&j(zm,{setDialog:r}),e===`player`&&(()=>{let e=[[null,R(`set_lang_default`)],[`tr`,`Türkçe`],[`en`,`English`],[`de`,`Deutsch`],[`fr`,`Français`],[`ar`,`العربية`],[`ru`,`Русский`]],t=[[null,R(`player_off`)],...e.slice(1)],n=[[`fit`,R(`aspect_fit`)],[`fill`,R(`aspect_fill`)],[`zoom`,R(`aspect_zoom`)]],i=[.75,1,1.25,1.5,1.75].map(e=>[e,`%${Math.round(e*100)}`]),u=[[0,R(`color_white`)],[1,R(`color_yellow`)],[2,R(`color_cyan`)]];return j(b,{children:[j(Q,{title:R(`set_audio_lang`),value:l(e,a.preferredAudio),onClick:()=>o(R(`set_audio_lang`),e,a.preferredAudio,e=>s({preferredAudio:e}))}),j(Q,{title:R(`set_sub_lang`),value:l(t,a.preferredSubtitle),onClick:()=>o(R(`set_sub_lang`),t,a.preferredSubtitle,e=>s({preferredSubtitle:e}))}),j(Q,{title:R(`set_sub_size`),value:l(i,a.subtitleScale),onClick:()=>o(R(`set_sub_size`),i,a.subtitleScale,e=>s({subtitleScale:e}))}),j(Q,{title:R(`set_sub_color`),value:l(u,a.subtitleColor),onClick:()=>o(R(`set_sub_color`),u,a.subtitleColor,e=>s({subtitleColor:e}))}),j(Q,{title:R(`set_sub_bg`),value:c(a.subtitleBackground),onClick:()=>s({subtitleBackground:!a.subtitleBackground})}),j(Q,{title:R(`set_auto_subs`),subtitle:R(`set_auto_subs_hint`),value:c(a.autoSubtitles),onClick:()=>s({autoSubtitles:!a.autoSubtitles})}),j(Q,{title:R(`set_remember_tracks`),value:c(a.rememberTracks),onClick:()=>s({rememberTracks:!a.rememberTracks})}),j(Hm,{setDialog:r}),j(Q,{title:R(`set_aspect`),value:l(n,a.aspect),onClick:()=>o(R(`set_aspect`),n,a.aspect,e=>s({aspect:e}))}),j(Q,{title:R(`set_preview`),value:c(a.previewAutoplay),onClick:()=>s({previewAutoplay:!a.previewAutoplay})}),j(Q,{title:R(`set_auto_next`),value:c(a.autoNextEpisode),onClick:()=>s({autoNextEpisode:!a.autoNextEpisode})}),j(Q,{title:R(`set_fallback`),value:c(a.fallbackToPrevious),onClick:()=>s({fallbackToPrevious:!a.fallbackToPrevious})})]})})(),e===`look`&&j(Wm,{setDialog:r,choose:o}),e===`epg`&&(()=>{let e=[6,12,24,48].map(e=>[e,R(`set_epg_hours`,e)]),t=[];for(let e=-180;e<=180;e+=30)t.push([e,R(`set_epg_offset_value`,e)]);let n=kc.value;return j(b,{children:[j(Q,{title:R(`set_epg_interval`),value:l(e,a.epgHours),onClick:()=>o(R(`set_epg_interval`),e,a.epgHours,e=>s({epgHours:e}))}),j(Q,{title:R(`set_epg_offset`),value:l(t,a.epgOffsetMin),onClick:()=>o(R(`set_epg_offset`),t,a.epgOffsetMin,e=>{s({epgOffsetMin:e}),n&&Rc(n,void 0,`epg`)})}),j(Q,{title:R(`set_epg_refresh`),subtitle:R(`set_epg_urls`),onClick:()=>{n&&Rc(n,void 0,`epg`)}})]})})(),e===`parental`&&j(b,{children:[Ml()?j(b,{children:[j(Q,{title:R(`set_pin_change`),onClick:()=>r({kind:`pin`,title:R(`pin_enter`),check:Nl,done:()=>Rm(r)})}),j(Q,{title:R(`set_pin_remove`),onClick:()=>r({kind:`pin`,title:R(`pin_enter`),check:Nl,done:()=>{Pl(null),r({kind:`notice`,text:R(`set_pin_removed`)})}})})]}):j(Q,{title:R(`set_pin_set`),onClick:()=>Rm(r)}),j(Q,{title:R(`set_hide_locked`),value:c(a.hideLocked),onClick:()=>s({hideLocked:!a.hideLocked})}),j(Q,{title:R(`set_adult_lock`),value:c(a.adultAutoLock),onClick:()=>s({adultAutoLock:!a.adultAutoLock})}),j(`p`,{class:`set-hint`,children:R(`set_parental_hint`)})]}),e===`hidden`&&j(Gm,{}),e===`about`&&j(`div`,{class:`set-about`,children:[j(`h3`,{children:R(`app_name`)}),j(`p`,{class:`set-version`,children:R(`set_version`,`0.1.0`)}),j(`p`,{children:R(`set_about_text`)}),j(Im,{text:R(`set_keys`)}),j(`p`,{class:`muted`,children:R(`tz_keys_text`)}),j(`p`,{class:`muted set-ua`,children:navigator.userAgent})]})]}),n&&n.kind===`menu`&&j(mn,{title:n.title,items:n.items,onClose:()=>r(null)}),n&&n.kind===`notice`&&j(yn,{text:n.text,onClose:()=>r(null)}),n&&n.kind===`confirm`&&j(un,{title:n.title,message:n.text,onConfirm:()=>{r(null),n.ok()},onDismiss:()=>r(null)}),n&&n.kind===`pin`&&j(_n,{title:n.title,check:n.check,onDone:e=>{r(null),n.done(e)},onClose:()=>r(null)},n.title),n&&n.kind===`text`&&j(vn,{title:n.title,label:n.label,initial:n.initial,placeholder:n.placeholder,password:n.password,onSave:n.save,onClose:()=>r(null)})]})}function Rm(e){e({kind:`pin`,title:R(`pin_new`),check:()=>!0,done:t=>{e({kind:`pin`,title:R(`set_pin_confirm`),check:e=>e===t,done:()=>{Pl(t),e({kind:`notice`,text:R(`set_pin_saved`)})}})}})}function zm({setDialog:e}){let t=Oc.value||[],n=kc.value,r=Ac.value,i=e=>e?new Date(e).toLocaleString(en.value===`tr`?`tr-TR`:`en-GB`,{day:`numeric`,month:`short`,hour:`2-digit`,minute:`2-digit`}):R(`set_never`),a=t=>{let r=[];t.id!==n&&r.push({label:R(`set_make_active`),onSelect:()=>Nc(t.id)}),r.push({label:R(`set_resync`),onSelect:()=>Rc(t.id)}),r.push({label:R(`set_edit`),onSelect:()=>o(t)}),r.push({label:R(`set_test_connection`),onSelect:async()=>{try{await Pc(t),e({kind:`notice`,text:R(`set_connection_ok`)})}catch(t){e({kind:`notice`,text:R(`error_${(t.error||`unknown`).toLowerCase()}`)})}}}),t.type===`xtream`&&r.push({label:R(`set_account`),onSelect:()=>{e({kind:`notice`,text:[t.expDate?R(`set_account_expiry`,i(t.expDate)):R(`set_account_unlimited`),t.maxConnections?R(`set_account_connections`,`?`,String(t.maxConnections)):null].filter(Boolean).join(`
|
|
14
|
+
`)})}}),r.push({label:R(`set_delete_source`),onSelect:()=>e({kind:`confirm`,title:t.name,text:R(`set_delete_confirm`,t.name),ok:()=>Vm(t.id)})}),e({kind:`menu`,title:t.name,items:r})},o=t=>{let n=(n,r,i,a,s=!1)=>({label:`${n}${r&&!s?`: ${r}`:``}`,onSelect:()=>e({kind:`text`,title:n,label:n,initial:r,password:s,save:async e=>{await K.providers.update(t.id,i(e.trim())),await Mc(),a&&Rc(t.id);let n=(Oc.peek()||[]).find(e=>e.id===t.id);n&&o(n)}})}),r=[n(R(`onb_name`),t.name,e=>({name:e||t.name}),!1)];t.type===`xtream`?r.push(n(R(`onb_server`),t.url,e=>({url:cr(e)}),!0),n(R(`onb_username`),t.username,e=>({username:e}),!0),n(R(`onb_password`),t.password,e=>({password:e}),!0,!0)):t.url.startsWith(`file:`)||r.push(n(R(`onb_url`),t.url,e=>({url:e.split(/\s+/).map(cr).filter(Boolean).join(` `)}),!0)),r.push(n(R(`onb_epg`),t.epgUrls.join(` `),e=>({epgUrls:e.split(/\s+/).map(cr).filter(Boolean)}),!0),n(R(`onb_user_agent`),t.userAgent||``,e=>({userAgent:e||null}),!1)),e({kind:`menu`,title:`${t.name} · ${R(`set_edit`)}`,items:r})};return j(b,{children:[t.map(e=>{let t=r&&r.providerId===e.id&&`stage`in r&&r.stage!==`DONE`;return j(Q,{title:`${e.name}${e.id===n?` ✓`:``}`,subtitle:`${e.type===`xtream`?`Xtream`:`M3U`} · ${t?R(`sync_title`)+`…`:R(`set_last_sync`,i(e.lastSync))}`,value:e.id===n?R(`set_active`):void 0,onClick:()=>a(e)},e.id)}),j(Q,{title:R(`set_add_source`),onClick:()=>Y.value=`onboarding`}),j(Im,{text:R(`set_backup`)}),j(Q,{title:R(`set_backup_now`),subtitle:R(`set_backup_warning`),onClick:async()=>{try{e({kind:`notice`,text:R(`set_backup_done`,await jm())})}catch(t){e({kind:`notice`,text:`${R(`error_storage`)} (${String(t)})`})}}}),j(Q,{title:R(`set_restore`),onClick:async()=>{let t=t=>e({kind:`confirm`,title:R(`set_restore`),text:R(`set_restore_confirm`),ok:async()=>{try{await Pm(await t()),e({kind:`notice`,text:R(`set_restore_done`)})}catch(t){e({kind:`notice`,text:`${R(`error_unknown`)} (${String(t)})`})}}}),n=(await Mm()).map(e=>({label:e.name,onSelect:()=>t(()=>Nm(e.uri))}));Tt||n.push({label:R(`set_restore_file`),onSelect:()=>Bm(e=>t(async()=>e))}),e(n.length?{kind:`menu`,title:R(`set_restore`),items:n}:{kind:`notice`,text:R(`set_restore_none`)})}})]})}function Bm(e){let t=document.createElement(`input`);t.type=`file`,t.accept=`.json,application/json`,t.onchange=()=>{let n=t.files&&t.files[0];n&&n.text().then(e)},t.click()}async function Vm(e){let t=[K.channels,K.movies,K.series,K.episodes,K.categories,K.programs,K.epgLinks,K.epgChannels,K.favorites,K.recents,K.progress,K.catState,K.chanState];for(let n of t)await n.where(`providerId`).equals(e).delete();await K.providers.delete(e),await Mc()}function Hm({setDialog:e}){let[t,n]=N(null);P(()=>{rm().then(n)},[]);let r=t||{key:``,user:``,pass:``},i=(t,i)=>({label:i,onSelect:()=>e({kind:`text`,title:i,label:i,initial:r[t],password:t===`pass`,save:async e=>{await am(V(V({},r),{},{[t]:e.trim()})),n(await rm())}})});return j(Q,{title:R(`os_account`),subtitle:R(`os_account_hint`),value:R(t&&t.key?`os_account_set`:`os_account_none`),onClick:()=>e({kind:`menu`,title:R(`os_account`),items:[i(`key`,R(`os_api_key`)),i(`user`,R(`os_username`)),i(`pass`,R(`os_password`))]})})}var Um={HERO:`home_hero`,CONTINUE:`shelf_continue`,UP_NEXT:`home_up_next`,FAVORITE_CHANNELS:`home_favorite_channels`,RECENT_CHANNELS:`home_recent_channels`,TONIGHT_SPORTS:`home_tonight`,SCHEDULE:`home_schedule`,PLATFORMS:`shelf_platforms`,NEW_MOVIES:`home_new_movies`,NEW_SERIES:`home_new_series`,TOP_RATED:`home_top_rated`,NEW_EPISODES:`home_new_episodes`,STARTING_SOON:`home_starting_soon`,FOR_YOU:`home_for_you`,GENRES:`home_genres`};function Wm({setDialog:e,choose:t}){let n=q.value,r=Cc,i=(e,t)=>(e.find(e=>e[0]===t)||[null,``])[1],a=[[`home`,R(`nav_home`)],[`live`,R(`nav_live`)],[`guide`,R(`nav_guide`)],[`movies`,R(`nav_movies`)],[`series`,R(`nav_series`)],[`last`,R(`start_last`)],[`firstFav`,R(`start_first_fav`)]],o=[[`GLOBAL`,R(`numbering_global`)],[`CATEGORY`,R(`numbering_category`)],[`HIDDEN`,R(`numbering_hidden`)]],s=[[`blue`,R(`accent_blue`)],[`orange`,R(`accent_orange`)],[`green`,R(`accent_green`)],[`purple`,R(`accent_purple`)],[`red`,R(`accent_red`)]],c=[[`navy`,R(`theme_navy`)],[`amoled`,R(`theme_amoled`)],[`graphite`,R(`theme_graphite`)],[`forest`,R(`theme_forest`)],[`wine`,R(`theme_wine`)]],l=[[`FAVORITE`,R(`act_favorite`)],[`AUDIO`,R(`player_audio`)],[`SUBTITLES`,R(`player_subtitles`)],[`ASPECT`,R(`player_aspect`)],[`GUIDE`,R(`player_guide`)],[`CHANNELS`,R(`pc_channels`)],[`INFO`,R(`pc_info`)],[`NONE`,R(`act_none`)]],u=n.homeShelves.filter(e=>gc.indexOf(e)>=0);return j(b,{children:[j(Q,{title:R(`set_start`),value:i(a,n.startScreen),onClick:()=>t(R(`set_start`),a,n.startScreen,e=>r({startScreen:e}))}),j(Q,{title:R(`set_numbering`),value:i(o,n.numbering),onClick:()=>t(R(`set_numbering`),o,n.numbering,e=>r({numbering:e}))}),j(Q,{title:R(`set_accent`),value:i(s,n.accent),onClick:()=>t(R(`set_accent`),s,n.accent,e=>r({accent:e}))}),j(Q,{title:R(`set_theme`),value:i(c,n.theme),onClick:()=>t(R(`set_theme`),c,n.theme,e=>r({theme:e}))}),j(Q,{title:R(`set_filter_words`),subtitle:R(`set_filter_words_hint`),value:n.filterWords.length?n.filterWords.join(`, `):R(`set_none`),onClick:()=>e({kind:`text`,title:R(`set_filter_words`),label:R(`set_filter_words`),initial:n.filterWords.join(`, `),placeholder:`[RAW], FHD, VIP`,save:e=>r({filterWords:e.split(`,`).map(e=>e.trim()).filter(Boolean)})})}),j(Q,{title:R(`home_edit`),subtitle:R(`set_home_shelves`),value:`${u.length} / ${gc.length}`,onClick:()=>rd({name:`homeEdit`})}),j(Im,{text:R(`set_color_keys`)}),[`key_red`,`key_green`,`key_yellow`,`key_blue`].map((e,a)=>j(Q,{title:R(e),value:i(l,n.colorKeys[a]),onClick:()=>t(R(e),l,n.colorKeys[a],e=>{let t=n.colorKeys.slice();t[a]=e,r({colorKeys:t})})},e)),j(Q,{title:R(`set_language`),value:en.value===`tr`?`Türkçe`:`English`,onClick:()=>t(R(`set_language`),[[`tr`,`Türkçe`],[`en`,`English`]],en.value,tn)})]})}function Gm(){let e=kc.value,[t,n]=N([]),[r,i]=N([]),a=async()=>{let[t,r]=await Promise.all([K.catState.where(`providerId`).equals(e).filter(e=>!!e.hidden).toArray(),K.chanState.where(`providerId`).equals(e).filter(e=>!!e.hidden).toArray()]);n((await K.categories.bulkGet(t.map(e=>e.id))).filter(e=>!!e)),i((await K.channels.bulkGet(r.map(e=>e.id))).filter(e=>!!e).sort((e,t)=>e.number-t.number))};return P(()=>{a()},[e]),!t.length&&!r.length?j(`p`,{class:`set-hint`,children:R(`set_hidden_none`)}):j(b,{children:[t.length>0&&j(Im,{text:R(`set_hidden_categories`)}),t.map(t=>j(Q,{title:t.name,value:R(`set_unhide`),onClick:async()=>{await kl(t.id,e,{hidden:!1}),a()}},t.id)),r.length>0&&j(Im,{text:R(`set_hidden_channels`)}),r.map(t=>j(Q,{title:`${t.number} ${t.name}`,value:R(`set_unhide`),onClick:async()=>{await Al(t.id,e,{hidden:!1}),await Sl(e),a()}},t.id))]})}function Km(){let e=q.value.homeShelves.filter(e=>gc.indexOf(e)>=0),t=gc.filter(t=>e.indexOf(t)<0),[n,r]=N(null),[i,a]=N(null),o=F(null);P(()=>{L(o.current)},[]),P(()=>{if(!i||!o.current)return;let e=o.current.querySelector(`[data-he="${i}"]`);e&&e.focus(),a(null)});let s=e=>Cc({homeShelves:e});Bt(t=>{if(n){if(t===`up`||t===`down`){let r=e.indexOf(n),i=r+(t===`up`?-1:1);if(i>=0&&i<e.length){let t=e.slice();t[r]=t[i],t[i]=n,s(t),a(`row-${n}`)}return!0}return(t===`ok`||t===`back`)&&r(null),!0}});let c=t=>{s(e.indexOf(t)>=0?e.filter(e=>e!==t):[...e,t]),a(`sw-${t}`)},l=(i,a)=>{let o=a!==null,s=a===1||!e.length&&i===t[0];return j(`div`,{class:`he-row${n===i?` moving`:``}`,children:[j(`button`,{class:`focus-row he-main`,"data-focus":!0,"data-focus-default":s||void 0,"data-he":`row-${i}`,onClick:()=>o&&r(n===i?null:i),children:[j(`span`,{class:`he-num`,children:o?`${a}.`:``}),j(`span`,{class:`he-label`,children:R(Um[i])}),n===i&&j(`span`,{class:`he-moving`,children:R(`home_edit_moving`)})]}),j(`button`,{class:`he-switch${o?` on`:``}`,"data-focus":!0,"data-he":`sw-${i}`,onClick:()=>c(i),children:R(o?`set_on`:`set_off`)})]},i)};return j(`div`,{class:`home-edit`,ref:o,children:[j(`div`,{class:`he-head`,children:[j(`h1`,{children:R(`home_edit`)}),j(`button`,{class:`btn outline`,"data-focus":!0,onClick:()=>{r(null),s(gc)},children:R(`home_edit_reset`)})]}),j(`p`,{class:`he-hint`,children:R(`home_edit_hint`)}),j(`div`,{class:`he-list`,children:[e.map((e,t)=>l(e,t+1)),t.length>0&&j(`h3`,{class:`set-header`,children:R(`home_edit_hidden`)}),t.map(e=>l(e,null))]})]})}var $=(e,t)=>e&&typeof e[t]==`string`&&e[t].trim()||null,qm=(e,t)=>{let n=e&&e[t],r=typeof n==`number`?n:parseFloat(String(n));return isFinite(r)?r:null};function Jm(e){let t=e.trim().replace(/^stremio:\/\//i,`https://`);return/manifest\.json$/i.test(t)||(t=`${t.replace(/\/+$/,``)}/manifest.json`),t}async function Ym(e){let t=await fetch(sr(e),{credentials:`omit`});if(!t.ok)throw Error(`HTTP ${t.status}`);return t.json()}var Xm=new Map;function Zm(e){let t=Xm.get(e);return t||(t=Ym(e).then(t=>Qm(e,t)),t.catch(()=>Xm.delete(e)),Xm.set(e,t)),t}function Qm(e,t){let n=e=>Array.isArray(t[e])?t[e]:[],r=n(`catalogs`).map(e=>e).filter(e=>{let t=Array.isArray(e.extra)?e.extra:[],n=Array.isArray(e.extraRequired)?e.extraRequired:[];return!t.some(e=>e.isRequired===!0)&&!n.length&&$(e,`type`)&&$(e,`id`)}).map(e=>({type:$(e,`type`),id:$(e,`id`),name:$(e,`name`)||$(e,`id`)})),i=n(`idPrefixes`).filter(e=>typeof e==`string`),a=e;try{a=new URL(e).host}catch(e){}return{url:e,base:e.replace(/\/manifest\.json$/i,``),id:$(t,`id`)||e,name:$(t,`name`)||a,logo:$(t,`logo`),types:n(`types`).filter(e=>typeof e==`string`),idPrefixes:i.length?i:null,resources:n(`resources`).map(e=>typeof e==`string`?e:$(e,`name`)).filter(e=>!!e),catalogs:r}}var $m=(e,t,n,r)=>e.resources.indexOf(t)>=0&&e.types.indexOf(n)>=0&&(!e.idPrefixes||e.idPrefixes.some(e=>r.startsWith(e))),eh=e=>encodeURIComponent(e).replace(/\+/g,`%20`),th=e=>({id:$(e,`id`)||``,type:$(e,`type`)||`movie`,name:$(e,`name`)||``,poster:$(e,`poster`),rating:qm(e,`imdbRating`)});async function nh(e,t){let n=await Ym(`${e.base}/catalog/${eh(t.type)}/${eh(t.id)}.json`);return(Array.isArray(n.metas)?n.metas:[]).map(th).filter(e=>e.id&&e.name)}async function rh(e,t,n){for(let r of e)try{let e=await Zm(r);if(!$m(e,`meta`,t,n))continue;let i=(await Ym(`${e.base}/meta/${eh(t)}/${eh(n)}.json`)).meta;if(!i)continue;let a=Array.isArray(i.genres)?i.genres:Array.isArray(i.genre)?i.genre:[],o=(Array.isArray(i.videos)?i.videos:[]).map(e=>({id:$(e,`id`)||``,title:$(e,`title`)||$(e,`name`)||``,season:qm(e,`season`)||0,episode:qm(e,`episode`)||qm(e,`number`)||0,thumbnail:$(e,`thumbnail`)})).filter(e=>e.id);return V(V({},th(i)),{},{type:$(i,`type`)||t,background:$(i,`background`),description:$(i,`description`),releaseInfo:$(i,`releaseInfo`)||(qm(i,`year`)?String(qm(i,`year`)):null),genres:a,videos:o})}catch(e){console.warn(`stremio meta`,r,e)}return null}async function ih(e,t,n){let r=await Promise.all(e.map(async e=>{try{let r=await Zm(e);if(!$m(r,`stream`,t,n))return[];let i=await Ym(`${r.base}/stream/${eh(t)}/${eh(n)}.json`);return(Array.isArray(i.streams)?i.streams:[]).filter(e=>/^https?:\/\//i.test($(e,`url`)||``)).map(e=>({url:$(e,`url`),name:($(e,`name`)||r.name).replace(/\n/g,` `),title:$(e,`title`)||$(e,`description`)}))}catch(t){return console.warn(`stremio stream`,e,t),[]}}));return[].concat(...r)}var ah=(e,t)=>({key:`${e.type}:${e.id}`,id:t,title:e.name,poster:e.poster,rating:e.rating}),oh=e=>e===`movie`?R(`nav_movies`):e===`series`?R(`nav_series`):e;function sh(){let e=q.value.stremioAddons,[t,n]=N([]),[r,i]=N([]),[a,o]=N(!1),[s,c]=N(!1),[l,u]=N(null);P(()=>{let t=!0;return i([]),(async()=>{let r=[];for(let t of e)try{r.push(await Zm(t))}catch(e){}if(t){n(r);for(let e of r)for(let n of e.catalogs)try{let r=await nh(e,n);if(!t)return;r.length&&i(t=>[...t,{key:`${e.url}|${n.type}|${n.id}`,title:`${n.name} · ${oh(n.type)} · ${e.name}`,items:r}])}catch(e){}}})(),()=>{t=!1}},[e.join(`
|
|
15
|
+
`)]);let d=async t=>{let n=Jm(t);try{await Zm(n),e.indexOf(n)<0&&Cc({stremioAddons:[...e,n]}),o(!1),c(!1)}catch(e){c(!0)}};return j(`div`,{class:`extensions`,children:[j(`h2`,{class:`shelf-title`,children:R(`ext_installed`)}),j(`div`,{class:`shelf-row ext-row`,"data-focus-group":`ext-addons`,children:[j(`button`,{class:`chip ext-add`,"data-focus":!0,"data-focus-default":!e.length||void 0,onClick:()=>{c(!1),o(!0)},children:[j(z,{name:`add`}),R(`ext_add`)]}),t.map(e=>j(`button`,{class:`chip ext-chip`,"data-focus":!0,onClick:()=>u(e),children:[e.logo&&j(`img`,{src:e.logo,alt:``}),e.name]},e.url))]}),j(`p`,{class:`ext-note muted`,children:R(e.length?`ext_note`:`ext_empty`)}),r.map(e=>j(Ed,{title:e.title,info:!0,children:e.items.map((e,t)=>j(_d,{card:ah(e,t),onClick:()=>rd({name:`stremio`,type:e.type,id:e.id})},`${e.type}:${e.id}`))},e.key)),a&&j(vn,{title:R(`ext_add`),label:R(s?`ext_failed`:`ext_url`),initial:``,placeholder:`https://…/manifest.json`,onSave:e=>{e.trim()&&(o(!0),d(e))},onClose:()=>o(!1)}),l&&j(un,{title:l.name,message:R(`ext_remove`),confirmLabel:R(`ext_remove`),onConfirm:()=>{Cc({stremioAddons:e.filter(e=>e!==l.url)}),u(null)},onDismiss:()=>u(null)})]})}function ch({type:e,id:t}){let n=q.value.stremioAddons,[r,i]=N(void 0),[a,o]=N(1),[s,c]=N(null),l=F(null);Bt(e=>{if(e===`back`)return id(),!0}),P(()=>{let r=!0;return rh(n,e,t).then(e=>{if(!r)return;i(e);let t=e?e.videos.map(e=>e.season).filter(e=>e>0):[];t.length&&o(Math.min(...t)),setTimeout(()=>L(l.current),0)}),()=>{r=!1}},[e,t]);let u=async(t,r)=>{c({title:r,list:null});let i=await ih(n,e,t);c({title:r,list:i.map(e=>({label:e.title?`${e.name} · ${e.title}`:e.name,onSelect:()=>rd({name:`stream`,url:e.url,title:r})}))})};if(r===void 0)return j(`div`,{class:`detail`,children:j(`div`,{class:`player-center`,children:j(`div`,{class:`spinner`})})});if(r===null)return j(`div`,{class:`detail`,ref:l,children:j(`div`,{class:`detail-scroll`,children:[j(`button`,{class:`btn outline back-btn`,"data-focus":!0,onClick:id,children:[j(z,{name:`back`}),R(`back`)]}),j(`p`,{class:`empty`,children:R(`empty_list`)})]})});let d=Array.from(new Set(r.videos.map(e=>e.season))).sort((e,t)=>e-t),f=r.videos.filter(e=>e.season===a).sort((e,t)=>e.episode-t.episode),p=e=>e<10?`0${e}`:`${e}`;return j(`div`,{class:`detail`,ref:l,children:[j(Ip,{src:r.background||r.poster}),j(`div`,{class:`detail-scroll series`,children:[j(`button`,{class:`btn outline back-btn`,"data-focus":!0,onClick:id,children:[j(z,{name:`back`}),R(`back`)]}),j(`div`,{class:`detail-row`,children:[j(`div`,{class:`detail-poster`,children:r.poster&&j(`img`,{src:r.poster,alt:``})}),j(`div`,{class:`detail-info`,children:[j(`h1`,{children:r.name}),j(Lp,{chips:[r.releaseInfo,r.rating?`★ ${r.rating}`:null,r.genres.slice(0,3).join(`, `)]}),r.description&&j(`p`,{class:`detail-plot`,children:r.description}),!r.videos.length&&j(`div`,{class:`detail-actions`,children:j(`button`,{class:`btn primary`,"data-focus":!0,"data-focus-default":!0,onClick:()=>u(r.id,r.name),children:R(`ext_find_sources`)})})]})]}),r.videos.length>0&&j(b,{children:[d.length>1?j(`div`,{class:`season-chips`,children:d.map(e=>j(`button`,{class:`chip${e===a?` selected`:``}`,"data-focus":!0,onClick:()=>o(e),children:e===0?R(`ext_specials`):R(`vod_season`,e)},e))}):j(`div`,{class:`season-gap`}),j(`div`,{class:`episode-list`,"data-focus-group":`episodes`,children:f.map((e,t)=>j(`button`,{class:`episode-row focus-row`,"data-focus":!0,"data-focus-default":t===0||void 0,onClick:()=>u(e.id,`${r.name} · S${p(e.season)}E${p(e.episode)}`),children:[j(`span`,{class:`ep-thumb`,children:(e.thumbnail||r.poster)&&j(sn,{src:e.thumbnail||r.poster})}),j(`span`,{class:`ep-text`,children:j(`span`,{class:`ep-title`,children:R(`vod_episode_title`,e.episode,e.title)})})]},e.id))})]})]}),s&&(s.list===null?j(`div`,{class:`scrim`,children:j(`div`,{class:`menu-dialog`,children:[j(`h2`,{children:R(`ext_sources`)}),j(`div`,{class:`spinner`})]})}):j(mn,{title:R(`ext_sources`),items:s.list.length?s.list:[{label:R(`ext_no_sources`),onSelect:()=>{}}],onClose:()=>c(null)}))]})}function lh(){let[e,t]=N(null),[n,r]=N(null),i=F(null),a=zu.value;P(()=>{K.reminders.orderBy(`start`).toArray().then(e=>{t(e),setTimeout(()=>{document.activeElement===document.body&&L(i.current)},0)})},[a]);let o=e=>new Date(e).toLocaleDateString(en.value===`tr`?`tr-TR`:`en-GB`,{weekday:`short`,day:`numeric`,month:`short`}),s=async e=>{let t=await Ll(e.providerId,{type:`all`}),n=t.indexOf(e.channelId);n>=0&&cd(t,n)};return j(`div`,{class:`recordings`,ref:i,children:[j(`div`,{class:`row rec-tabs`,children:j(`span`,{class:`chip selected`,children:R(`rec_tab_scheduled`)})}),j(`p`,{class:`muted rec-note`,children:R(`tz_rec_note`)}),e&&!e.length&&j(`p`,{class:`empty`,children:R(`rec_scheduled_empty`)}),j(`div`,{class:`rec-list`,children:(e||[]).map(e=>j(`button`,{class:`focus-row rec-row`,"data-focus":!0,onClick:()=>r({title:e.title,items:[{label:R(`home_open_channel`),onSelect:()=>s(e)},{label:R(`guide_remind_off`),onSelect:()=>Uu(e.id)}]}),children:[j(`span`,{class:`opt-text`,children:[j(`span`,{class:`opt-label`,children:e.title}),j(`span`,{class:`muted`,children:`${e.channelName} · ${o(e.start)} ${pl(e.start)}${e.stop?`–${pl(e.stop)}`:``}`})]}),e.repeat?j(`span`,{class:`rec-repeat`,children:R(e.repeat===1?`rec_repeat_daily`:`rec_repeat_weekly`)}):null]},e.id))}),n&&j(mn,{title:n.title,items:n.items,onClose:()=>r(null)})]})}var uh=bs(`[^LETTER0-9]+`,`g`),dh=e=>e.toLowerCase().split(uh).filter(Boolean),fh=(e,t)=>t.every(t=>e.some(e=>e.startsWith(t)));function ph(e,t){let n=e.toLowerCase();return n===t?0:n.startsWith(t)?1:n.indexOf(t)>=0?2:3}var mh=null,hh=40,gh=null,_h=e=>!!(bl.value.get(e.id)||{}).hidden||Cl(e);async function vh(e,t){if(gh&&gh.stamp===t)return gh;let n=t=>{let n=[];return t.where(`providerId`).equals(e).each(e=>{n.push({id:e.id,name:e.name,categoryId:e.categoryId,w:dh(e.name)})}).then(()=>n)},[r,i,a,o]=await Promise.all([n(K.channels),n(K.movies),n(K.series),K.categories.where(`providerId`).equals(e).toArray()]);return gh={stamp:t,live:r,movie:i,series:a,blocked:new Set(o.filter(_h).map(e=>e.id))},gh}function yh(e,t,n,r){let i=[];for(let n of e)n.categoryId!==null&&r.has(n.categoryId)||fh(n.w,t)&&i.push(n);return i.sort((e,t)=>ph(e.name,n)-ph(t.name,n)||e.name.length-t.name.length).slice(0,hh)}async function bh(e,t,n){let r=n.trim().toLowerCase(),i=dh(r);if(r.length<2||!i.length)return null;let a=await vh(e,t),o=await xh(e,t),s=Date.now()-216e5,c=[];for(let e of o.list)if(e.stop>s&&fh(e.w,i)&&c.push(e.id),c.length>=400)break;let l=(await K.programs.bulkGet(c)).filter(e=>!!e).sort((e,t)=>e.start-t.start),u=await K.epgLinks.where(`providerId`).equals(e).toArray(),d=new Map;for(let e of u)d.has(e.key)||d.set(e.key,e.id);let f=new Map(a.live.map(e=>[e.id,e])),p=[];for(let e of l){let t=f.get(d.get(e.key)||-1);if(!(!t||t.categoryId!==null&&a.blocked.has(t.categoryId))&&(p.push({program:e,channelId:t.id}),p.length>=hh))break}return{channels:yh(a.live,i,r,a.blocked),movies:yh(a.movie,i,r,a.blocked),series:yh(a.series,i,r,a.blocked),programs:p}}async function xh(e,t){if(mh&&mh.stamp===t&&Date.now()-mh.at<36e5)return mh;let n=Date.now()-216e5,r=[];return await K.programs.where(`providerId`).equals(e).each(e=>{e.stop>n&&r.push({id:e.id,start:e.start,stop:e.stop,w:dh(e.title)})}),mh={stamp:t,at:Date.now(),list:r},mh}function Sh(e){let t=e.trim();t.length<2||Cc({searchHistory:[t,...(q.peek().searchHistory||[]).filter(e=>e.toLowerCase()!==t.toLowerCase())].slice(0,12)})}function Ch(){let e=kc.value,t=(Oc.value||[]).find(t=>t.id===e),n=`${t&&t.lastSync||0}|${t&&t.lastEpgSync||0}`,[r,i]=N(``),[a,o]=N(null),s=F(null),c=q.value.searchHistory||[];P(()=>{setTimeout(()=>L(s.current),0)},[]),P(()=>{let t=!0,i=setTimeout(async()=>{let i=await bh(e,n,r);if(!t)return;if(!i)return o(null);let[a,s,c,l]=await Promise.all([K.channels.bulkGet(i.channels.map(e=>e.id)),K.movies.bulkGet(i.movies.map(e=>e.id)),K.series.bulkGet(i.series.map(e=>e.id)),K.channels.bulkGet(i.programs.map(e=>e.channelId))]);t&&o({channels:a.filter(e=>!!e),movies:s.filter(e=>!!e),series:c.filter(e=>!!e),programs:i.programs.map((e,t)=>({program:e.program,channel:l[t]})).filter(e=>!!e.channel)})},300);return()=>{t=!1,clearTimeout(i)}},[r,e,n]);let l=()=>Sh(r),u=async(t,n)=>{l();let r=await Ll(e,{type:`all`}),i=r.indexOf(t);i>=0&&cd(r,i,n)},d=a&&!a.channels.length&&!a.movies.length&&!a.series.length&&!a.programs.length,f=Date.now(),p=e=>`${new Date(e).toLocaleDateString(en.value===`tr`?`tr-TR`:`en-GB`,{day:`numeric`,month:`short`})} ${pl(e)}`;return j(`div`,{class:`search`,ref:s,children:[j(`div`,{class:`search-row`,children:j(ln,{label:R(`nav_search`),value:r,onInput:i,placeholder:R(`search_hint`),initial:!0,class:`search-field`})}),!a&&c.length>0&&j(`section`,{class:`shelf`,children:[j(`h2`,{class:`shelf-title`,children:R(`search_recent`)}),j(`div`,{class:`shelf-row history-row`,"data-focus-group":`search-history`,children:[c.map(e=>j(`button`,{class:`chip`,"data-focus":!0,onClick:()=>i(e),children:e},e)),j(`button`,{class:`btn outline`,"data-focus":!0,onClick:()=>Cc({searchHistory:[]}),children:R(`search_clear`)})]})]}),d&&j(`p`,{class:`search-empty`,children:R(`search_no_results`,r.trim())}),a&&a.channels.length>0&&j(Ed,{title:R(`search_channels`),children:a.channels.map(e=>j(Id,{cc:{channel:e,now:null},onClick:()=>u(e.id),onLongPress:()=>{}},e.id))}),a&&a.movies.length>0&&j(Ed,{title:R(`search_movies`),info:!0,children:a.movies.map(e=>{let t=cu(e);return j(_d,{card:t,onClick:()=>{l(),rd({name:`movie`,id:e.id})}},t.key)})}),a&&a.series.length>0&&j(Ed,{title:R(`search_series`),children:a.series.map(e=>{let t=cu(e);return j(vd,{card:t,onClick:()=>{l(),rd({name:`series`,id:e.id})}},t.key)})}),a&&a.programs.length>0&&j(`section`,{class:`search-programs`,children:[j(`h2`,{class:`shelf-title`,children:R(`search_programs`)}),a.programs.map(({program:e,channel:t})=>j(`button`,{class:`focus-row opt-row search-prog`,"data-focus":!0,onClick:()=>u(t.id,e.stop<f?e:void 0),children:[j(Ku,{src:t.logo,size:30}),j(`span`,{class:`opt-text`,children:[j(`span`,{class:`opt-label`,children:e.title}),j(`span`,{class:`muted`,children:t.name})]}),j(`span`,{class:`sp-time${e.start<=f&&e.stop>f?` live`:``}`,children:p(e.start)})]},e.id))]})]})}function wh(e){let{program:t,channel:n}=e,r=F(null),i=F(document.activeElement);P(()=>(L(r.current),()=>i.current&&i.current.isConnected&&i.current.focus()),[]),Bt(t=>t===`back`?(e.onClose(),!0):`default`);let a=Date.now(),o=new Date(t.start).toLocaleDateString(en.value===`tr`?`tr-TR`:`en-GB`,{day:`numeric`,month:`long`}),s=[],c=zf(n,t.start,a);return t.start<=a&&t.stop>a?(s.push([R(`guide_watch`),e.onWatch]),c&&s.push([R(`guide_restart`),e.onArchive])):t.stop<=a&&c&&s.push([R(`guide_watch_archive`),e.onArchive]),t.start>a&&(s.push([R(zu.value.has(t.id)?`guide_remind_off`:`guide_remind`),async()=>{B(R(await Hu(t,n)?`guide_reminder_set`:`guide_reminder_removed`))}]),s.push([R(`tz_remind_daily`),async()=>{await Hu(t,n,1),B(R(`guide_reminder_set`))}]),s.push([R(`tz_remind_weekly`),async()=>{await Hu(t,n,2),B(R(`guide_reminder_set`))}])),s.push([R(`guide_close`),()=>{}]),j(`div`,{class:`scrim`,"data-focus-scope":!0,children:j(`div`,{class:`program-dialog`,ref:r,role:`dialog`,children:[j(`h2`,{children:t.title}),j(`p`,{class:`pd-meta`,children:`${n.name} · ${o} ${pl(t.start)} – ${pl(t.stop)}`}),t.category&&j(`p`,{class:`pd-cat`,children:t.category}),t.desc&&j(`p`,{class:`pd-desc`,children:t.desc}),j(`div`,{class:`row pd-buttons`,children:s.map(([t,n],r)=>j(`button`,{class:`btn ${r===0?`primary`:`outline`}`,"data-focus":!0,"data-focus-default":r===0||void 0,onClick:()=>{e.onClose(),n()},children:t},t))})]})})}var Th=I(null),Eh=864e5;function Dh({onOpenPlayer:e,onSearch:t}){let n=kc.value,r=Th.value||{filter:{type:`all`},label:R(`cat_all`)},[i,a]=N(null),[o,s]=N([]),[c,l]=N(np(Date.now())),[u,d]=N(null),[f,p]=N(null),m=q.value;P(()=>{K.categories.where(`[providerId+kind]`).equals([n,`live`]).sortBy(`order`).then(s)},[n]),P(()=>{let e=!0;return a(null),Ll(n,r.filter).then(t=>e&&a(t)),()=>{e=!1}},[n,JSON.stringify(r.filter)]);let h=Oe(()=>i?new zl(i):null,[i]),g=(t,n)=>{i&&e(i,t,n)};return j(`div`,{class:`guide`,children:[j(`div`,{class:`guide-head`,children:[j(`h1`,{children:new Date(c).toLocaleDateString(en.value===`tr`?`tr-TR`:`en-GB`,{weekday:`long`,day:`numeric`,month:`long`})}),j(`div`,{class:`row`,children:[j(`button`,{class:`btn outline`,"data-focus":!0,onClick:()=>d({title:R(`guide_category`,r.label),items:[{label:R(`cat_all`),filter:{type:`all`}},{label:R(`cat_favorites`),filter:{type:`fav`}},...o.map(e=>({label:e.name,filter:{type:`cat`,id:e.id}}))].map(e=>({label:e.label,checked:JSON.stringify(e.filter)===JSON.stringify(r.filter),onSelect:()=>Th.value={filter:e.filter,label:e.label}}))}),children:R(`guide_category`,r.label)}),j(`button`,{class:`btn outline`,"data-focus":!0,onClick:()=>l(c-Eh),children:R(`guide_prev_day`)}),j(`button`,{class:`btn outline`,"data-focus":!0,onClick:()=>l(np(Date.now())),children:R(`guide_now`)}),j(`button`,{class:`btn outline`,"data-focus":!0,onClick:()=>l(c+Eh),children:R(`guide_next_day`)}),j(`button`,{class:`btn outline`,"data-focus":!0,onClick:t,children:R(`guide_search`)})]})]}),i&&!i.length?j(`p`,{class:`empty`,children:R(`live_empty_category`)}):h&&j(ip,{pager:h,count:i.length,initialRow:0,rowRem:6,winStart:c,setWinStart:l,numberOf:(e,t)=>m.numbering===`HIDDEN`?null:m.numbering===`CATEGORY`?t+1:e.number,onChannel:(e,t)=>g(t),onProgram:(e,t,n)=>p({p:e,c:t,row:n})},JSON.stringify(r.filter)),j(`p`,{class:`guide-hint`,children:R(`guide_hint`)}),u&&j(mn,{title:u.title,items:u.items,onClose:()=>d(null)}),f&&j(wh,{program:f.p,channel:f.c,onClose:()=>p(null),onWatch:()=>g(f.row),onArchive:()=>g(f.row,f.p)})]})}var Oh=[{id:`home`,label:`nav_home`},{id:`live`,label:`nav_live`},{id:`guide`,label:`nav_guide`},{id:`movies`,label:`nav_movies`},{id:`series`,label:`nav_series`},{id:`recordings`,label:`nav_recordings`},{id:`extensions`,label:`nav_extensions`},{id:`search`,label:`nav_search`,icon:`search`},{id:`settings`,label:`nav_settings`,icon:`settings`}],kh=I(!1),Ah=null,jh=e=>{if(e===`back`&&nd.value.length)return id();e===`back`&&Ah&&Ah.isConnected&&(Ah&&!Ah.contains(document.activeElement)?L(Ah):Y.value===`home`?kh.value=!0:Y.value=`home`)};async function Mh(){let e=Ru.value;Ru.value=null,kc.peek()!==e.providerId&&Nc(e.providerId);let t=await Ll(e.providerId,{type:`all`}),n=t.indexOf(e.channelId);n<0||cd(t,n)}var Nh=!1;function Ph({active:e}){let t=F(null);return P(()=>{Ah=t.current,Nh||(Nh=!0,L(Ah))},[]),j(`header`,{class:`topbar glass`,children:[j(`span`,{class:`brand`,children:R(`app_name`)}),j(`nav`,{class:`pills`,ref:t,"data-focus-group":`menu`,children:Oh.map(t=>{let n=t.id===(e||Y.value);return j(`button`,{class:`pill${n?` selected`:``}${t.icon?` icon-only`:``}`,"data-focus":!0,"data-focus-default":n||void 0,"aria-label":R(t.label),onClick:()=>{nd.value=[],Y.value=t.id},children:t.icon?j(z,{name:t.icon}):R(t.label)},t.id)})})]})}function Fh(e){switch(e.name){case`browse`:return j(jp,{kind:e.kind,title:e.title,filter:e.filter});case`movie`:return j(Vp,{id:e.id});case`series`:return j(Up,{id:e.id,season:e.season});case`vod`:return j(bm,{kind:e.kind,id:e.id,seriesId:e.seriesId,startMs:e.startMs});case`epgmap`:return j(Tm,{channelId:e.channelId});case`homeEdit`:return j(Km,{});case`stream`:return j(bm,{kind:`stream`,id:0,url:e.url,title:e.title});case`stremio`:return j(ch,{type:e.type,id:e.id})}}function Ih(){let e=nd.value,t=Oh.find(e=>e.id===Y.value)||Oh[0],n=Oc.value,r=n!==null&&(Y.value===`onboarding`||!n.length),i=e.length?e[e.length-1].page:null,a=i&&i.name===`browse`?i:null;return j(`div`,{class:`app`,children:[j(Ep,{}),n===null?null:r?j(Vc,{onDone:()=>Y.value=`home`,onExit:()=>n.length?Y.value=`home`:kh.value=!0}):Y.value===`player`?j(_p,{onExit:ld},$u.value?$u.value.seq:0):j(b,{children:[(!e.length||a)&&j(Ph,{active:a?a.kind===`movie`?`movies`:`series`:void 0}),j(`main`,{style:e.length?{display:`none`}:void 0,class:`content${Y.value===`live`||Y.value===`guide`?` live-content`:``}`,"data-focus-group":`screen-${Y.value}`,children:Y.value===`home`?j(Md,{providerId:kc.value}):Y.value===`live`?j(Df,{onOpenPlayer:(e,t)=>cd(e,t)}):Y.value===`guide`?j(Dh,{onOpenPlayer:(e,t,n)=>cd(e,t,n),onSearch:()=>Y.value=`search`}):Y.value===`search`?j(Ch,{}):Y.value===`settings`?j(Lm,{}):Y.value===`movies`?j(kd,{kind:`movie`}):Y.value===`series`?j(kd,{kind:`series`}):Y.value===`extensions`?j(sh,{}):Y.value===`recordings`?j(lh,{}):j(bn,{title:R(t.label)})}),e.map((t,n)=>j(`div`,{class:t.page.name===`browse`?`page-flow`:`page`,style:n<e.length-1?{display:`none`}:void 0,children:Fh(t.page)},n))]}),j(pn,{}),Ru.value&&j(un,{title:R(`tz_reminder_title`,Ru.value.title),message:R(`tz_reminder_text`,Ru.value.channelName),confirmLabel:R(`guide_watch`),onConfirm:()=>Mh(),onDismiss:()=>Ru.value=null}),kh.value&&j(un,{title:R(`exit_title`),message:R(`exit_message`),onConfirm:Dt,onDismiss:()=>kh.value=!1})]})}Et(),Dc(),uf(document.getElementById(`video`)),Gu(),Jt(jh),A(j(Ih,{}),document.getElementById(`app`)),Mc().then(async e=>{new URLSearchParams(location.search),e.length?(Fc(),Lh()):Y.value=`onboarding`});async function Lh(){let e=q.peek().startScreen,t=kc.peek();if(e===`last`||e===`firstFav`){if(!t)return;let n=await Ll(t,{type:e===`last`?`all`:`fav`}),r=e===`last`?n.indexOf(q.peek().lastChannelId||-1):0;n.length&&r>=0&&cd(n,r)}else Y.value=e}})();
|